zyn 是一个 Rust 过程宏框架项目,旨在简化过程宏的开发工作。
核心特点
1. 统一的解决方案
- 替代了传统开发中需要组合使用的多个crate(syn、quote、heck、proc-macro-error等)
- 将所有功能整合到单一框架中
2. 内联控制流的模板系统
- 支持
@if、@for、@match 等控制流语法
- 无需使用
.iter().map().collect() 等繁琐代码
- 模板语法更直观简洁
3. 内置格式转换和管道操作
- 提供13种内置管道函数:snake、camel、pascal、screaming、kebab、upper、lower、str、trim、plural、singular、ident、fmt
- 支持管道链式调用
- 自动处理命名转换
4. 可复用组件系统
- 通过
#[zyn::element] 将模板转换为可调用组件
- 支持类型化参数
- 组件可以相互组合
5. 简化的过程宏入口
#[zyn::derive] 和 #[zyn::attribute] 替代原生宏注解
- 自动解析输入
- 支持提取器模式
6. 友好的诊断系统
- 提供
error!、warn!、note!、help!、bail! 等宏
- 无需手动处理
syn::Error
- 编译器输出更清晰
7. 类型化属性解析
- 通过
#[derive(Attribute)] 生成类型化结构
- 简化辅助属性的处理
安装方式
cargo add zyn
项目地址:https://github.com/aacebo/zyn
authx-rs - 一个为 Rust 开发的生产级身份认证和授权框架
authx-rs 是一个为 Rust 开发的生产级身份认证和授权框架,如果你想寻找一个功能完备且设计现代的开源认证解决方案,它值得一看。
核心设计理念
- 零成本抽象:基于 trait 的异步原生设计
- 插件化架构:所有功能均为插件形式,无硬编码
- 框架无关:核心层不依赖特定 Web 框架
架构层次
该项目采用四层架构设计:
- HTTP 层 (authx-axum)
- 提供 Session 层、限流层、CSRF 保护和处理器
- 插件层 (authx-plugins)
- 邮箱密码登录、TOTP、魔法链接、密码重置
- 管理后台、OAuth(即将推出)
- 核心引擎 (authx-core)
- 零依赖核心:加密、JWT/EdDSA、RBAC/ABAC
- 防暴力破解锁定、密钥轮换、事件系统
- 存储层 (authx-storage)
- 提供存储接口适配器
- 内置内存存储(测试用)和 PostgreSQL 存储
- 支持自定义适配器
安全特性
- 密码哈希:仅使用 Argon2id 算法
- 会话令牌:SHA-256 哈希后存储
- JWT 签名:采用 Ed25519/EdDSA
- CSRF 防护:基于可信源的 Origin/Referer 检查
项目结构
- crates/:核心 Rust 库
- examples/:Axum 和 Actix-web 集成示例
- packages/:TypeScript SDK 及 React/Vue 示例应用
项目地址:https://github.com/hamzzy/authx-rs
无论是想简化自己的过程宏开发流程,还是为下一个Web项目寻找坚实的安全基石,这两个来自社区的Rust开源项目都提供了颇具价值的参考。
|