2023-11-24
如果 Rails 基于 Rust 构建会怎样?
Team Loco
如果 Rails 基于 Rust 而不是 Ruby 构建会怎样?
那么它会看起来像这样:
async
隆重介绍:Loco
Loco 是一个受 Rails 启发的 Rust Web 框架。它包括 几乎所有 Rails 的功能,并尽力提供符合 Rust 习惯的用法:
- 控制器和路由,通过 axum
- 模型、迁移和 ActiveRecord,通过 SeaORM
- 视图,通过 serde
- 无缝的后台任务,通过 sidekiq-rs,多模式:进程内、进程外、异步通过 Tokio
- 邮件发送器 (Mailers)
- 任务 (Tasks)
- 数据填充 (Seeding)
- 环境感知配置
- 追踪 (Tracing)、日志 (Logging),通过 tracing 无缝集成
- 代码生成器 (Generators),通过 rrgen
- 开箱即用的身份验证 (Authentication) (类似 Rails 的
devise
) - 测试套件 (Testing kit),具有自动截断、fixture 数据填充、自动迁移、快照 (snapshotting) 和 редакция (redaction)
它是真正的全栈 (full stack) 框架。
为什么不选择 Rails?
如果您对 Ruby 感到满意,请使用 Rails。不要因为性能而花时间寻找其他框架 -- Rails 和 Ruby 已经足够好了。
但是如果您热爱 Rust,现在您可以像 Ruby 开发者多年来构建公司一样构建公司 -- 使用 Loco。
- 您将获得 Rust 的安全性、强类型、出色的并发模型以及超级稳定的库和生态系统。构建一次,然后就不用管它了。
- 部署是将 单个二进制文件 复制到服务器上。
- 您将毫不费力地获得 每秒 100,000 个请求 的处理能力。即使加上数据库调用,也能达到每秒 5 万个请求。您永远不需要超过几台服务器。 甚至,您可以部署在树莓派 (Rasberry Pi) 上并感到满意。
单人框架 (The One Person Framework)
受到 DHH 的方法 的启发,Loco 的首要指导原则是:
单人框架
所有其他一切都源于这一单一指导原则。
例如,单人团队或单人公司:
- 没有时间争论库、工具、lint 规则:欢迎强烈的观点。告诉我应该如何工作。
- 需要一个驱动工具 来辅助他们的脑力 -- 这就是 Loco CLI。生成代码,操作您的项目。
- 需要稳定性,任何崩溃都是浪费时间,任何意外都是浪费时间
- 需要简洁性 -- 不要让我感到意外
- 需要单一的可操作性方案。部署应该很简单。不需要 Kubernetes,不需要 IAC,不需要前提条件。
- 需要控制。在本地编写邮件并发送,而不是在某些远程服务上。
- 需要本地化。生产环境中发生的一切应该首先在开发环境和本地发生
- 需要临时性。没有神圣的仪式。构建任务来向您的用户发送生日邮件,而不是发起一场关于 "管理后台 (Admin)" 项目的圣战。
Loco 是为 独立黑客 (indy hackers)、爱好者和初创公司 打造的单人框架。
凭借大约 20mb 的部署二进制文件和每秒 5 万个请求 的处理能力 - 您只需要一台小型/中型服务器、Postgres 或 Sqlite 以及互联网连接。 初创公司应该节省成本!
立即开始使用 Loco 吧!