Orion Variate
一个Rust库,提供地址重定向、模板处理和变量扩展功能,专为现代开发工作流设计。
🚀 功能特性
地址重定向服务 (RedirectService)
- 智能重定向: 基于通配符和精确匹配的重定向规则
- 环境变量支持: 在配置中使用
${VAR}和${VAR:-default}语法 - 多环境配置: 支持不同环境的灵活配置
- 认证集成: 内置HTTP基本认证支持
模板引擎
- 多格式支持: Handlebars 和 Gtmpl 模板引擎
- 变量扩展: 强大的环境变量和自定义变量解析
- 条件渲染: 支持条件逻辑和循环结构
地址处理
- 统一接口: 统一的地址访问抽象 (AddrAccessor)
- 多协议支持: HTTP(S)、Git、本地文件系统
- 代理支持: 内置HTTP代理和Git代理配置
📦 安装
在您的 Cargo.toml 中添加:
[]
= "0.6.0"
🚦 快速开始
重定向服务配置
创建 redirect-rules.yml:
enable: true
units:
- name: "github-mirror"
rules:
- pattern: "https://github.com/*"
target: "https://ghproxy.com/https://github.com/"
- pattern: "https://raw.githubusercontent.com/*"
target: "https://ghproxy.com/https://raw.githubusercontent.com/"
auth:
username: "${GITHUB_USER}"
password: "${GITHUB_TOKEN}"
代码使用示例
use RedirectService;
// 从配置文件加载
let service = from_file?;
// 重定向地址
let original = "https://github.com/user/repo";
if let Some = service.redirect
// 从字符串加载配置
let config = r#"
enable: true
units:
- rules:
- pattern: "https://example.com/*"
target: "https://mirror.example.com/"
"#;
let service = from_str?;
环境变量使用
# 使用环境变量的高级配置
enable: true
units:
- name: "enterprise-proxy"
rules:
- pattern: "https://${INTERNAL_DOMAIN}/*"
target: "https://${PROXY_HOST}/${INTERNAL_PATH}/"
auth:
username: "${PROXY_USER:-admin}"
password: "${PROXY_PASS:-default123}"
📖 文档
🧪 测试
# 运行所有测试
# 运行特定模块测试
🔧 开发
项目结构
src/
├── addr/ # 地址处理模块
│ ├── redirect/ # 重定向服务
│ ├── http.rs # HTTP地址处理
│ ├── git.rs # Git地址处理
│ └── ...
├── tpl/ # 模板引擎
├── vars/ # 变量处理
└── ...
构建
# 调试构建
# 发布构建
# 检查代码
📄 许可证
MIT License - 详见 LICENSE 文件
🤝 贡献
欢迎提交Issue和Pull Request!请阅读我们的贡献指南了解详情。
📈 版本历史
- 0.6.0 - 环境变量支持,配置格式优化
- 0.5.9 - 初始重定向服务实现
文档状态: 持续更新中 | 最新版本: 0.6.0