T1 探针式实现,接通端到端链路并验证双目标编译: - 依赖:rmcp=3.0.0-beta.3(server/macros/transport-streamable-http-server/ transport-worker)+ aes-gcm,均经 server feature 门控。 - 迁移 017_mcp_tokens:UUID 主键、scope 约束、token_enc 密文 + token_hash 唯一索引(仅未撤销),users.id 外键级联。 - 模型 src/models/mcp_token.rs:TokenScope(read<write<admin 偏序,grants)+ McpToken/McpTokenSummary/CreateTokenResponse DTO。 - src/mcp/(server-only): - crypto.rs:AES-GCM-256 加解密(hex 密钥、每次独立 nonce、8 项单测)。 - auth.rs:bearer→SHA-256→DB 常量查找→注入 McpPrincipal,刷新 last_used_at。 - server.rs:rmcp ServerHandler,search_posts 工具(read 作用域,pg_trgm 查询)。 - router.rs:StreamableHttpService(无状态+JSON 响应+Origin 白名单)挂载 /mcp。 - main.rs:merge mcp_route 到应用路由;models/mod.rs 注册 mcp_token 模块。 验证:rmcp+axum-0.8 兼容性经临时探针实测(tools/list、tools/call、Origin→403、 bearer→工具 principal 全链路);--features web 与 --features server 均编译通过; clippy --all-features -D warnings 干净;639 单测+1 集成 +13 新 MCP 测试全绿。
Yggdrasil
基于 Dioxus 0.7 的全栈博客系统,Rust 单一代码库同时编译为 WASM 前端和原生服务端。
技术栈
- 框架: Dioxus 0.7 (fullstack)
- 数据库: PostgreSQL + tokio-postgres
- 样式: Tailwind CSS v4
- 密码: Argon2
- 会话: UUID token + cookie
功能
- 邮箱注册 / 登录(单管理员模式,首次注册后关闭)
- 会话管理与自动过期清理
- 暗色 / 亮色主题切换
- 后台文章撰写(Tiptap Markdown 编辑器)
- 文章归档与标签浏览
开发
依赖 Rust 1.95+、wasm32 目标、dx CLI、tailwindcss CLI v4 和 PostgreSQL。
# 配置数据库
DATABASE_URL=postgres://postgres:postgres@localhost:5432/yggdrasil
# 运行迁移(自动创建数据库并按顺序执行 migrations/ 下所有 SQL)
./migrate.sh
# 启动开发服务器
make dev
构建
make build
生产部署
生产环境必须前置反向代理(nginx/Caddy)做 TLS 终结,并设置 APP_BASE_URL、
COOKIE_SECURE=true、TRUSTED_PROXY_COUNT=1。详见 部署指南。
Description
Languages
Rust
79.7%
TypeScript
15.4%
CSS
3%
Dockerfile
0.8%
Makefile
0.5%
Other
0.5%