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 测试、事件链接等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。