GitHub - vpetersson/dslf:一个用 Rust 编写的小型链接转发器。

DSLF - Damn Small Link Forwarder

  • 自我托管的快速链接转发服务:用 Rust 构建,性能卓越且资源占用少,是 bit.ly 等类似服务的替代方案。
  • 优势

    • 自我托管:可完全掌控链接和数据。
    • 速度快:响应时间低于毫秒。
    • 注重隐私:无跟踪和分析,除非主动开启。
    • 体积小:仅 5MB 二进制文件,内存占用少。
    • 配置简单:只需 CSV 文件,无需数据库。
    • 可靠:核心功能无第三方依赖。
  • 功能特点

    • 代码库小:单个二进制文件,依赖少。
    • 速度快:基于 Axum 框架构建,性能高。
    • 配置简单:基于 CSV 的重定向规则。
    • 符合 HTTP:支持经典和现代重定向代码。
    • 路由灵活:自动处理尾部斜杠。
    • 测试充分:测试覆盖率达 70%以上,错误处理全面。
    • URL 验证:部署前可验证目的地 URL。
    • 导入功能:可从外部提供商导入链接(支持 Rebrandly)。
  • 使用方法

    • 创建redirects.csv文件,编写短链接规则。
    • 运行服务,可通过cargo run --release或直接使用二进制文件。
    • 服务默认在http://127.0.0.1:3000启动。
  • 命令行选项

    • 主选项:包括--validate(验证目的地 URL)、--check(检查配置文件语法)等。
    • 导入命令:可从 Rebrandly 导入链接,自动处理分页。
    • 示例:各种命令行参数的使用示例。
  • 二进制分布

    • 本地构建:在target/release/dslf
    • GitHub 发布:多个平台的预构建二进制文件。
    • 创建发布:可使用助手脚本或手动创建标签。
  • CSV 格式

    • url:短路径,如/gh等。
    • target:要重定向的完整 URL。
    • status:HTTP 状态码(301 永久,302 临时)。
    • 支持注释和空白行以提高组织性。
  • 部署

    • 生产设置:获取域名,部署二进制文件,配置反向代理,设置 SSL,以服务形式运行。
    • 平台即服务部署:适用于 Fly.io 等现代 PaaS 平台,资源占用少,部署成本低。
    • 部署模式:包括自定义 Docker 镜像、Kubernetes 部署、Docker 部署等。
    • Nginx 配置:简单的 Nginx 配置示例。
  • 开发

    • 测试:运行cargo test,生成覆盖报告。
    • 发布管理:使用scripts/create-release.sh脚本自动化发布过程。
    • 代码质量:保持高代码质量标准,包括格式化、 linting、测试和文档。
    • CI/CD 优化:GitHub Actions 工作流的优化,如 Rust 缓存、并行执行等。
  • 性能

    • 性能优于传统链接短重定向服务,响应时间短,内存占用少,无数据库开销。
    • 基准测试:在 modest VPS 上可处理 50,000 多个重定向每秒,延迟低于 1ms。
  • 使用案例:个人/团队链接短重定向、活动跟踪、自定义域名、API 端点重定向、A/B 测试、事件链接等。
阅读 28
0 条评论