aphrody-code/aphrody

GitHub: aphrody-code/aphrody

aphrody是一款基于Rust的monorepo映射工具,用于快速构建内容哈希映射,支持多种平台。

Stars: 0 | Forks: 0

aphrody

# aphrody [![构建](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a67b1f7509134916.svg)](https://github.com/aphrody-code/aphrody/actions/workflows/cross-platform.yml) [![许可证](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) [![状态](https://img.shields.io/badge/status-1.0.0--canary-orange.svg)](docs/PLAN.md) [![Rust](https://img.shields.io/badge/rust-nightly%20(edition%202024)-orange.svg)](rust-toolchain.toml) [![X](https://img.shields.io/badge/X-%40aphrody__code-black.svg?logo=x)](https://x.com/aphrody_code) [![供应链](https://img.shields.io/badge/supply--chain-cargo--deny%20%2B%20cargo--vet-green.svg)](docs/cargo/SUPPLY_CHAIN.md) [![跨平台](https://img.shields.io/badge/cross--platform-Linux%20%7C%20Win%20%7C%20wasm-blueviolet.svg)](docs/cargo/CROSS_PLATFORM.md) ## 这是什么 一个以 Rust 作为主要语言的 **多语言 monorepo**。核心——二进制 `aphrody`、MCP 服务器 `aphrody-mcp`、扫描器 `mrx`、代理到代理协议 `a2a-*`——是 **100% Rust** 并在 Linux/Windows/wasm 上分发。围绕它有两个一流表面: | 表面 | 位置 | 工具链 | 角色 | |---|---|---|---| | **Rust** (主要) | `crates/*` (~70 个 crate) | `rust-toolchain.toml` | CLI、系统、FFI、MCP、A2A | | **Bun/TypeScript** | `packages/*`、`apps/*`、`examples/*` | `mise.toml` | UI 材料设计 3 (`@aphrody/*`)、客户端网页 | | **Python** | `py/` | `.python-version` (uv) | 机器学习 / 数据 / 桥接 | ## 演示 —— `mrx scan` 在此存储库中(实际运行,无编辑) ``` $ aphrody --version aphrody 1.0.0-canary $ mrx scan --root . # writes /path.json + /monorepo-map.json, then exits $ jq '.stats' monorepo-map.json # real run on this repo, 2026-06-04 { "total_files": 1513, "total_workspaces": 12, "scan_duration_ms": 47, // walk parallèle (rayon + ignore) "bytes_scanned": 8435119, "languages": { "CSS": { "files": 695, "bytes": 2326717 }, "TypeScript": { "files": 673, "bytes": 2446884 }, "Markdown": { "files": 88, "bytes": 1185790 }, "JSON": { "files": 21, "bytes": 108686 } } } $ jq '.root_kind' monorepo-map.json { "task_runners": ["turbo"], "package_managers": ["bun"], "lockfiles": ["bun.lock", "Cargo.lock"], "has_cargo_workspace": true, "has_bun_workspaces": true } ``` 这是其自身的存储库中的 `mrx` 二进制文件。在 `docs/PERFORMANCE.md` 中可重现的基准测试食谱和回归日志在 `docs/PERFORMANCE-HISTORY.md` 中。 ### 此 VPS 上的代理堆栈(Claude · Grok · Gemini · bxc · aphrody) **部署:** [`DEPLOY.md`](DEPLOY.md) (Rust CLI、MCP、A2A、Python `:8082`) · bxc [`../bxc/DEPLOY.md`](../bxc/DEPLOY.md) · 快速内存 [`docs/agent-stack/DEPLOY.md`](docs/agent-stack/DEPLOY.md). 共享 MCP:`~/.config/aphrody/mcp.json` (`aphrody-mcp`、`bxc-mcp`)。设置:[`docs/MCP_SETUP.md`](docs/MCP_SETUP.md)。 ## 安装 ### 从源代码(保证路径) ``` git clone https://github.com/aphrody-code/aphrody.git && cd aphrody cargo build --release -p aphrody ./target/release/aphrody --help # Ou : build + install des binaires (aphrody, mrx, aphrody-mcp) dans ~/.local/bin ./scripts/deploy.sh # Linux / macOS (--dry-run pour prévisualiser) .\scripts\deploy.ps1 # Windows PowerShell 7+ ``` ## 快速入门(从源代码构建) ### Linux Ubuntu 26.04(目标 #1) ``` # Pré-requis sudo apt install -y build-essential pkg-config libssl-dev curl # Toolchain (le pin exact vit dans rust-toolchain.toml) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain nightly -y rustup component add clippy rustfmt rust-src # Clone + build git clone https://github.com/aphrody-code/aphrody.git && cd aphrody cargo build --release -p aphrody ./target/release/aphrody --help ``` ### Windows 11 Insider Canary Build(目标 #2) ``` # Pré-requis : Visual Studio 2026 Insiders + Windows SDK 26100 + Ninja + NASM git clone https://github.com/aphrody-code/aphrody.git cd aphrody cargo build --release -p aphrody .\target\release\aphrody.exe --help ``` ### WebAssembly(目标 #3) 实际状态(2026-05-17 矩阵): | Crate | `wasm32-unknown-unknown` (浏览器) | `wasm32-wasip1` (WASI) | |-----------------|:----------------------------------:|:----------------------:| | `base` | ✅ | ✅ | | `mrx` | n/a | ✅ | | `aphrody` (bin) | ✅ (stub : `--version` / `--help`) | ✅ (stub) | | `backend`/`a2a*`| ❌ (tokio "full" + mio + reqwest) | ❌ | ``` rustup target add wasm32-unknown-unknown wasm32-wasip1 cargo check -p base --target wasm32-unknown-unknown # ✅ cargo check -p aphrody --target wasm32-unknown-unknown # ✅ (stub binaire) cargo check -p base --target wasm32-wasip1 # ✅ cargo check -p mrx --target wasm32-wasip1 # ✅ cargo check -p aphrody --target wasm32-wasip1 # ✅ (stub binaire) ``` `aphrody` 二进制文件在 `wasm32-*` 上编译为 *stub 最小化*:它只暴露 `--version` 和 `--help`;OS 绑定命令返回消息“在 wasm 上不可用”并重定向到原生二进制文件。请参阅 `crates/cli/src/main.rs` 中的 `cfg(not(target_arch = "wasm32"))`,它隔离 `mimalloc`、`tokio` *full*、`reqwest`、`rustls`、`backend` 和 `a2a-client`。 ## 突出 —— `mrx` Monorepo 实时跨平台映射器 一个自包含的 Rust 二进制文件 (`mrx`),可以扫描 **任何 monorepo** (Bun、pnpm、Turborepo、Cargo、Lerna、Nx、Deno、Yarn、npm) 并输出: - `path.json` —路径加固审计(绝对路径、脆弱路径、系统路径)。 - `monorepo-map.json` —内容地址映射(blake3)带有运行时、lockfiles、工作空间、检测到的语言、按工作空间统计。 基于 `ignore` 的并行遍历器(ripgrep 引擎)+ rayon 聚合。 无服务器友好(Lambda / Cloud Run)。三个子命令: ``` mrx scan --root . # one-shot audit + map, exits mrx watch --root . # daemon notify, debounced (1500 ms par défaut) mrx check --root . # comme scan, exit non-zéro si findings → gate CI ``` ## 2026 年堆栈 | 层 | 技术 | |---|---| | **系统** | Rust nightly + **2024 年版**,`windows-rs` (Win) / `libc` + `nix` (Linux) / `wasm-bindgen` (wasm) | | **运行时** | **mimalloc** 全局分配器,`tokio` 可移植,`io_uring` (Linux) / IOCP (Win) | | **表面** | **Rust** 主要;**Bun/TypeScript** (UI 材料设计 3);**Python** (ML/data) — 请参阅 [`CLAUDE.md`](CLAUDE.md) §2 | | **构建** | 稀疏注册表,sccache,`cargo zigbuild` 跨编译,`cargo-auditable` SBOM | | **供应链** | `cargo deny` + `cargo vet` (Google / Mozilla / Fuchsia / ChromeOS 资源) | ## 前端 — 材料设计 3(monorepo TypeScript) Bun + Turborepo 工作空间(存储库的 UI 表面,与 Rust 核心分离)。库发布在 **npm** (`registry.npmjs.org`) 上,作用域为 `@aphrody/*`(标签 `m3-v*` → `.github/workflows/release-m3-packages.yml`)。 ``` packages/ material-web/ @aphrody/material-web # lib Lit (web components ), self-contained sur --md-sys-* react/ @aphrody/m3-react # wrappers React (@lit/react), 1 par m3-tokens/ @aphrody/m3-tokens # tokens M3 + Material You runtime (dynamic-color) m3-motion/ @aphrody/m3-motion # transitions / motion M3 (React) m3-theme/ @aphrody/m3-theme # tokens « fusion » M3 + shadcn/ui + Tailwind v4 m3-design/ @aphrody/m3-design # design compiler : brief NL → scaffold React M3 eslint-plugin-m3/ @aphrody/eslint-plugin-m3 # règles lint M3 (oxlint + ESLint) doc-ai/ @aphrody/doc-ai # CLI doc/traduction bun-rs/ @aphrody/bun-rs # FFI native Rust (Sass, HCT) via bun:ffi (hors workspace Cargo) apps/ web/ # client GRAND PUBLIC : chat/RAG, React + m3-react + TanStack, Bun-natif examples/ showcase/ # galerie m3-react + Material You, 100 % Bun ``` ``` bun install # racine — lie le workspace, applique les patches (MCU 0.4.0, @webgpu/types) bun run build # turbo : build des @aphrody/* bun run typecheck # turbo tsc cd apps/web && bun run dev # client public (Bun.serve + HMR) ``` ## 2026 年路线图 - **部署分发**:GitHub 发布(Linux x64/ARM64、Windows x64/ARM64、macOS x64/ARM64)、Homebrew、Scoop、apt/deb — *进行中,请参阅 [`docs/PLAN.md`](docs/PLAN.md)*。 - **crates.io 发布**:`aphrody` + SDK 一旦 `base`/`backend` 稳定后公开。 - **CI Linux-first**:在 Ubuntu 26.04 上进行主要验证(目标 #1)。 - 公开完整路线图:[`docs/ROADMAP.md`](docs/ROADMAP.md). ## 构建 & 部署 规范 VPS 指南:**[`DEPLOY.md`](DEPLOY.md)** (`vps-deploy-bxc-aphrody.sh`、Linux `config.linux-vps.toml`、A2A、systemd)。统一同步:`bash scripts/vps-sync-agent-stack.sh`。 ### 开发 & CI 验证 ``` # --- Dev (rapide, debug) ------------------------------------------------- cargo check --workspace --locked cargo build --workspace --locked # --- Validation CI (hermétique) ------------------------------------------ cargo ci-offline # = clippy --workspace --all-targets --locked --offline -- -D warnings cargo xt-offline # = nextest run --workspace --locked --offline # --- Cross-platform (les 3 cibles prioritaires) -------------------------- cargo check -p aphrody --target x86_64-unknown-linux-gnu # #1 Linux cargo check -p aphrody --target x86_64-pc-windows-msvc # #2 Windows cargo check -p aphrody --target wasm32-unknown-unknown # #3 wasm # --- Supply-chain audits ------------------------------------------------- cargo deny check # CVE + licences + bans + sources cargo vet # audits signés cargo audit-machete # unused dependencies ``` ### 构建特定二进制文件 ``` cargo build --release --locked -p aphrody # CLI main binary cargo build --release --locked --bin aphrody-mcp # MCP server (from google_mcp crate) cargo build --release --locked -p mrx # Monorepo scanner ``` ## 存储库结构 | 路径 | 角色 | |---|---| | `crates/cli` | **Binaire `aphrody`** — 纯跨平台 | | `crates/base` | 共享的 no_std 基础 | | `crates/backend` | 取证 + 网络(跨平台) | | `crates/a2a*` | 代理到代理协议 | | `crates/google_mcp` | MCP 服务器(二进制 `aphrody-mcp`) | | `crates/mrx` | Monorepo 实时跨平台映射器(二进制 `mrx`) | | `crates/aphrody-re` | 反向工程(分类 / disasm / 字符串 / 部分 / yara) | | `crates/aphrody-translate` | CLI 翻译注释 + AI/表情符号清理 | | `packages/`、`apps/`、`examples/` | TypeScript / 材料设计 3 表面(Bun + Turborepo) | | `py/` | Python 表面(uv / ruff / pytest) | | `docs/` | 集中化文档 | | `scripts/` | 部署 & 构建自动化 | | `deny.toml` | `cargo-deny` 策略 | | `Cargo.toml` (root) | 工作空间清单 | | `rust-toolchain.toml` | Nightly + 组件 + 目标 | | `docs/SOURCE_OF_TRUTH.md` | **综合概览** | ## 文档 ### 概述 - [SOURCE_OF_TRUTH.md](./docs/SOURCE_OF_TRUTH.md) — 执行概览 - [ARCHITECTURE.md](./docs/ARCHITECTURE.md) — 工作空间层 + 依赖图 - [DESIGN.md](./DESIGN.md) — 架构/产品决策 - [COMPARISON.md](./docs/COMPARISON.md) — aphrody 与 just/taskfile/gh/devcontainer/asdf 的比较 - [FAQ.md](./docs/FAQ.md) — 预期问题 - [ROADMAP.md](./docs/ROADMAP.md) — 公开路线图 - [PLAN.md](./docs/PLAN.md) — 战略计划 - [PLAN-MOONSHOT.md](./docs/PLAN-MOONSHOT.md) — 30 天 star 最大值计划 - [PERFORMANCE.md](./docs/PERFORMANCE.md) — 基准测试食谱 + 数字 - [SUMMARY.md](./docs/SUMMARY.md) — mdBook 摘要 - [INDEX.md](./docs/INDEX.md) — 所有文档的主索引 ### 指南 - [INSTALL.md](./docs/INSTALL.md) — 安装路径(源代码 + 计划渠道) - [MIGRATION.md](./docs/MIGRATION.md) — 从 just/taskfile/gh 的采用路径 - [EXAMPLES.md](./docs/EXAMPLES.md) — 食谱集合 - [MCP_SETUP.md](./docs/MCP_SETUP.md) — MCP 服务器布线 - [UI-ARCHITECTURE.md](./docs/UI-ARCHITECTURE.md) — 终端 & UI 架构 - [STACK.md](./docs/STACK.md) — 完整工具链堆栈 ### Cargo / 工作空间 - [docs/cargo/](./docs/cargo/) — 工作空间、FFI 策略、跨平台 - [docs/cargo/CRATES.md](./docs/cargo/CRATES.md) — 每个crate的清单 - [docs/cargo/CROSS_PLATFORM.md](./docs/cargo/CROSS_PLATFORM.md) — 多目标策略 - [docs/cargo/SUPPLY_CHAIN.md](./docs/cargo/SUPPLY_CHAIN.md) — cargo-vet / cargo-deny 详细信息 - [docs/cargo/BUILD-SPEED.md](./docs/cargo/BUILD-SPEED.md) — 构建速度策略 - [docs/cargo/PIPELINE-OPTIMIZATION.md](./docs/cargo/PIPELINE-OPTIMIZATION.md) — 管道优化 ### 协议 & 安全 - [PROTOCOL.md](./docs/PROTOCOL.md) — a2a/v0.4 协议参考 - [SECURITY-MODEL.md](./docs/SECURITY-MODEL.md) — 威胁模型 + 信任边界 - [PRIVACY.md](./docs/PRIVACY.md) — 零遥测策略 - [CI-CD.md](./docs/CI-CD.md) — GitHub Actions 工作流程概述 ### OSS 卫生 - [CONTRIBUTING.md](./CONTRIBUTING.md) - [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) - [SECURITY.md](./SECURITY.md) — 漏洞报告 - [CHANGELOG.md](./CHANGELOG.md) - [COMMUNITY.md](./docs/COMMUNITY.md) - [CLAUDE.md](./CLAUDE.md) — CLI 代理约定 ## 安全 漏洞应私下报告。请参阅 [`SECURITY.md`](./SECURITY.md) 以获取支持的版本、GitHub 安全建议频道、响应窗口、范围和避风港。 ## 供应链(2026 年 Google 级别) 无源 vendoring 的构建密封(`Cargo.lock` SHA-256 + `cargo-vet`): 1. **`Cargo.lock`** 提交 → 每个crate的SHA-256 锁定。可重现性。 2. **稀疏注册表** (`.cargo/config.toml`) → 比 git 快 10-100 倍。 3. **cargo-vet** → 来自 Google、Mozilla、Fuchsia、ChromeOS、Bytecode Alliance、Embark、Zcash 的签名导入审计。 4. **cargo-deny** ([`deny.toml`](deny.toml)) → CVE RustSec DB + 许可证 + 禁令 + 来源。 5. **CI**:`cargo ci-offline` → `--locked --offline -D warnings`(零网络)。 详细信息:[`docs/cargo/SUPPLY_CHAIN.md`](docs/cargo/SUPPLY_CHAIN.md). ## 贡献 按顺序阅读: 1. [`docs/S_OF_TRUTH.md`](./docs/SOURCE_OF_TRUTH.md) — 概览。 2. [`CLAUDE.md`](
标签:Apache License 2.0, Blake3, Bridge, Bun, Cargo, Cargo Deny, Cargo Vet, CLI Tool, Code Scanning, Content Hashing, Cross-Platform, Data Processing, Google Grade, Machine Learning, Material Design, pnpm, Python, Rust, RustScan, Rust Toolchain, Supply Chain Security, Turbo, TypeScript, X.com Integration, 可视化界面, 安全插件, 文档结构分析, 无后门, 网络流量审计, 通知系统