尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Loco 中文指南:用 Rust 快速构建类 Rails 的 Web 应用
Loco 中文指南用 Rust 快速构建类 Rails 的 Web 应用【免费下载链接】loco The one-person framework for Rust for side-projects and startups项目地址: https://gitcode.com/GitHub_Trending/lo/locoLoco 是一个用 Rust 编写的 Web 框架设计理念深受 Rails 启发目标是为个人项目和初创公司提供一人团队级别的开发效率。本指南以仓库根目录的 README-zh_CN.md 为核心骨架结合 Cargo.toml 特性声明、loco-new 项目生成器源码、CLI 实现 与 配置模块系统讲解 Loco 的特性、安装、项目创建、启动开发服务器、CLI 命令与配置体系读完即可独立创建并运行一个完整的 Loco 应用。Loco 是什么Loco 是一个用 Rust 编写的 Web 框架功能定位与 Rails 类似提供快速构建 Web 应用所需的基础设施并允许创建自定义任务通过 CLI 运行见 README-zh_CN.md。在英文原版 README.md 中作者用一句话概括了它的定位Loco is Rust on RailsLoco 之于 Rust正如 Rails 之于 Ruby。它被设计为一个Web 或 API 框架 生产力套件如果你同时熟悉 Rails 与 Rust上手 Loco 会非常自然如果你只熟悉 Rails 而对 Rust 陌生Loco 的惯例式设计也能让你快速适应Loco 不预设读者已经了解 Rails。从仓库实际内容看Cargo.toml 中name loco-rs版本0.16.4描述为 The one-person framework for Rust它是一套完整的应用开发工具箱包含 Web 服务基于 Axum、数据库 ORMSeaORM、后台任务队列、定时任务调度、邮件发送、文件存储与缓存等模块配合locoCLI 提供从项目脚手架生成到日常开发运维的完整链路。核心特性README-zh_CN.md 列出了四大特性下面结合源码逐一展开。简单的 API强类型系统的安全性与可靠性Loco 构建在 Rust 的强类型系统之上确保应用在编译期就能发现大量潜在错误。这一特性贯穿整个框架控制器层基于axum见 Cargo.toml 中 workspace 依赖axum { version 0.8.1, features [macros, multipart] }利用 Rust 类型系统表达路由、提取器与响应数据模型层基于 SeaORM实体、关系与校验都通过类型化代码定义无需手写 SQL框架对外导出统一的prelude让业务代码只需use loco_rs::prelude::*即可获得常用类型与宏。快速开发工具与模板Loco 提供快速构建 Web 应用的工具和模板。体现在三个方面项目脚手架生成器loco new通过交互式向导wizard生成完整可运行的项目骨架代码生成器cargo loco generate可以生成控制器、模型、迁移、任务、Worker、邮件等代码避免复制粘贴内置基础设施认证JWT、后台任务、调度器、邮件、存储、缓存等开箱即用业务代码只需接线。CLI 支持创建与运行自定义任务Loco 提供强大的 CLI既可以运行框架内置命令也可以注册并运行业务自定义任务。核心入口在 src/cli.rs后面会有专门章节详解。灵活性自定义配置与扩展Loco 采用分环境development / test / production的 YAML 配置体系同时支持通过settings字段注入应用自定义配置并可通过特性开关feature flag裁剪功能模块。详见配置体系章节。安装 Loco在终端中通过 Cargo 安装 LocoREADME-zh_CN.mdcargo install loco如果需要使用数据库能力还需要安装 SeaORM 的命令行工具该提示同样出现在英文原版 README.md 与官方指南 guide.md 中cargo install sea-orm-cli # 仅当需要数据库时安装完成后loco命令即可使用。仓库根目录的 Cargo.toml 表明当前loco-rs版本为0.16.4安装时请留意与你项目所需版本的兼容性。快速开始创建第一个 Loco 项目交互式向导创建项目运行loco new启动交互式向导README-zh_CN.mdloco new my_project cd my_project更完整的交互过程来自英文原版 README.md同样记录在官方指南 guide.md 中❯ loco new ✔ ❯ App name? · myapp ✔ ❯ What would you like to build? · Saas App with client side rendering ✔ ❯ Select a DB Provider · Sqlite ✔ ❯ Select your background worker type · Async (in-process tokio async tasks) Loco app generated successfully in: myapp/ - assets: Youve selected clientside for your asset serving configuration. Next step, build your frontend: $ cd frontend/ $ npm install npm run build向导背后的选项设计向导的实现位于 loco-new/src/wizard.rs其中定义了四类关键选项理解它们有助于你准确选择模板1. 应用模板Template模板说明Saas App with server side renderingSaaS 应用服务端渲染模板Saas App with client side renderingSaaS 应用客户端渲染前端独立构建Rest API (with DB and user auth)纯 REST API含数据库与用户认证lightweight-service (minimal, only controllers and views)极简服务仅控制器与视图Advanced高级模式DB / 后台 / 资源三项全部自行选择2. 数据库选项DBOptionsqlite默认、postgres、none。选择 postgres 时向导会提示你需要一个可连接的 PostgreSQL 实例对应的默认连接串分别为sqlite://NAME_ENV.sqlite?moderwc与postgres://loco:locolocalhost:5432/NAME_ENV。3. 后台任务类型BackgroundOption选项说明Async进程内 tokio 异步任务默认无需外部依赖Queue基于 Redis/valkey 的独立 Worker 队列需要可连接的 Redis 实例Blocking前台阻塞执行任务完成前会阻塞请求处理4. 资源托管方式AssetsOptionServer服务端渲染视图、Client前端独立构建后由静态中间件托管、None。选择 Client 后向导会提示你执行cd frontend/ npm install npm run build来构建前端。向导的校验与安全细节wizard.rs 中还包含两个值得注意的细节应用名校验名称不能为空、不能以数字开头首字符必须是 Unicode XID 起始字符大多数字母或_其余字符只能是 Unicode XID 字符数字、-、_或大多数字母Git 仓库警告如果当前目录位于 Git 仓库内向导会询问是否继续避免误生成嵌套项目。非交互式创建除了交互式向导loco new还支持通过命令行参数完全跳过交互见 starters.md 中记录的帮助输出$ loco new --help Create a new Loco app Usage: loco[EXE] new [OPTIONS] Options: -p, --path PATH Local path to generate into [default: .] -v, --verbose VERBOSE Verbosity level [default: ERROR] -n, --name NAME App name -t, --template TEMPLATE Starter template --db DB DB Provider [possible values: sqlite, postgres] --bg BG Background worker configuration [possible values: async, queue, blocking] --assets ASSETS Assets serving configuration [possible values: serverside, clientside] -h, --help Print help -V, --version Print version例如创建一个使用 SQLite 数据库、异步后台任务、服务端渲染资源的项目loco new --db sqlite --bg async --assets serverside生成的项目结构官方指南 guide.md 详细列出了 Loco 默认生成的项目结构文件/目录用途src/包含控制器、模型、视图、任务等app.rs主要组件注册点重要的部分在这里接线lib.rs组件相关的 Rust 导出bin/包含main.rs一般无需关注controllers/控制器通过mod.rs统一导出models/模型models/_entities存放自动生成的 SeaORM 模型models/*.rs存放模型扩展逻辑views/基于 JSON 的视图可序列化并通过 API 输出workers/后台任务 Workermailers/邮件发送逻辑与模板fixtures/数据与自动 fixture 加载逻辑tasks/面向业务的日常任务发邮件、报表、数据库维护等tests/应用级测试模型、请求等config/分环境的配置目录development、test、production仓库内的 loco-new/base_template 即是这套脚手架的模板源其中包含基于 JWT 的User模型与认证、前后端两种资源配置等完整示例。启动开发服务器在项目目录下启动开发服务器README-zh_CN.mdcargo loco start启动成功后终端会打印 Loco 的 ASCII Logo 与运行信息并默认监听5150端口示例输出来自英文原版 README.md 与 base_template/README.mdenvironment: development database: automigrate logger: debug compilation: debug modes: server listening on http://localhost:5150验证服务是否存活官方指南 guide.md 提供了两个内置的探活端点$ curl localhost:5150/_ping {ok:true}_ping端点用于告知负载均衡器服务进程本身已就绪而_health端点则会进一步验证应用配置是否正确——包括能否成功连接数据库与 Redis$ curl localhost:5150/_health {ok:true}这两个端点由框架自动注册是 SaaS 模板中内置的运维基础设施详见 starters.md。CLI 命令全览Loco 的 CLI 实现集中在 src/cli.rs基于clap解析命令。除start与new外还有以下常用命令以源码中的子命令枚举为准命令说明备注cargo loco start启动应用支持--worker仅启动 Worker可加标签、--server-and-worker同进程起服务与 Worker、--all服务 Worker 调度器、--binding/--port绑定地址与端口、--no-banner关闭 Logo 输出、-e/--environment指定环境cargo loco db数据库操作迁移等需启用with-db特性cargo loco routes列出应用全部端点快速了解路由全貌cargo loco middleware描述应用全部中间件-c/--config可打印中间件配置cargo loco task name key:value运行自定义任务任务参数以foo:bar键值对形式传入别名tcargo loco jobs管理任务队列需启用bg_redis/bg_pg/bg_sqlt特性cargo loco scheduler运行调度器-n/--name指定任务、-t/--tag按标签运行、-c/--config指定独立调度配置、-l/--list列出已配置任务cargo loco generate代码生成控制器、模型、迁移、任务、Worker、邮件等别名g仅在 debug 构建可用cargo loco doctor校验并诊断配置-c/--config打印当前配置--production以生产模式校验其中start子命令的worker参数支持逗号分隔的多个标签例如--workertag1,tag2用于只运行特定标签的后台任务。生成器实战快速加一个接口官方指南 guide.md 演示了用生成器创建控制器的完整流程。先生成一个 API 控制器cargo loco generate controller guide --api生成器会自动创建控制器文件、注入路由注册src/controllers/mod.rs与src/app.rs、生成对应请求测试。生成的控制器骨架如下use loco_rs::prelude::*; #[debug_handler] pub async fn index(State(_ctx): StateAppContext) - ResultResponse { format::empty() } pub fn routes() - Routes { Routes::new() .prefix(api/guides/) .add(/, get(index)) }把format::empty()替换为format::text(hello)重启服务器后访问$ curl localhost:5150/api/guides hello可见 Loco 的生成器不仅省去样板代码还自动完成模块注册与测试接线这正是CLI 支持特性的实战价值。配置体系Loco 的配置体系定义在 src/config.rs采用分环境的 YAML 文件config/development.yaml、config/test.yaml、config/production.yaml由Config结构体统一承载。主要配置段包括配置段说明关键字段logger日志基于 tracingenable是否输出到 stdout、pretty_backtrace美化回溯生产环境建议关闭、leveltrace/debug/info/warn/error、formatcompact/pretty/json、override_filter覆盖内置 tracing filter、file_appender写文件、轮转与目录serverHTTP 服务绑定地址、端口等database数据库需启用with-db特性cache缓存层默认启用cache_inmem可配置 Redisqueue消息队列后台任务队列配置auth认证JWT 等认证配置workersWorker 配置后台任务运行方式mailer邮件发送SMTP 等配置initializers初始化器如视图引擎、额外数据库等settings应用自定义配置任意 JSON/YAML 结构可在代码中通过ctx.config.settings反序列化为自己的类型scheduler定时调度调度任务与表达式开发者可以在settings下存放任意业务配置例如settings: allow_list: - google.com - apple.com然后反序列化为自定义Settings类型使用。这种框架约定 业务自定义的组合正是 README-zh_CN.md 所强调灵活性的落点。关于特性的裁剪仓库 Cargo.toml 中的默认特性为auth_jwt、cli、with-db、cache_inmem、bg_redis、bg_pg、bg_sqlt存储类特性storage_aws_s3、storage_azure、storage_gcp与 Redis 缓存cache_redis默认不启用可按需开启避免引入不必要的依赖。贡献与许可证Loco 是一个开源项目欢迎社区贡献。相关规范请参阅仓库根目录的 CONTRIBUTING.md贡献指南、CODE_OF_CONDUCT.md行为准则与 SECURITY.md安全政策。许可证方面README-zh_CN.md 声明 Loco 采用 MIT 许可证发布。需要注意仓库根目录 Cargo.toml 中 workspace 层声明的license Apache-2.0与 README 的声明存在差异具体以你实际使用的发布版本为准建议查阅 LICENSE 文件确认。进一步阅读项目英文原版说明README.md其中包含更完整的特性清单Convention Over Configuration、ORM 集成、控制器、视图、后台任务、调度器、邮件、存储、缓存等与 Powered by Loco 案例完整入门教程官方指南 guide.md从零开始逐步构建应用模板与脚手架速览starters.md涵盖 SaaS、REST API 等预置模板的差异与命令行参数项目生成器源码loco-new/src/wizard.rs可深入了解向导选项的默认值与校验逻辑CLI 实现src/cli.rs查看每个子命令的完整参数定义配置结构src/config.rs查看每个配置字段的 rustdoc 注释与默认值脚手架模板loco-new/base_template内含带 JWT 认证的 SaaS 起步项目完整示例。至此你已经掌握了 Loco 从安装、创建项目、启动服务到 CLI 命令与配置体系的完整脉络。接下来可以直接运行cargo install loco创建你的第一个 Loco 应用体会一人框架带来的开发节奏。【免费下载链接】loco The one-person framework for Rust for side-projects and startups项目地址: https://gitcode.com/GitHub_Trending/lo/loco创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

使用 lifx.paint_theme 为 LIFX 灯具绘制预设主题与自定义调色板

使用 lifx.paint_theme 为 LIFX 灯具绘制预设主题与自定义调色板

使用 lifx.paint_theme 为 LIFX 灯具绘制预设主题与自定义调色板 【免费下载链接】home-assistant.io :blue_book: Home Assistant User documentation 项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io 本篇技术指南围绕 Home Assistant 的 lifx.p…

📅 2026/9/16 16:28:52
LTX-2 训练指南:从单卡 LoRA 到多卡分布式训练与模型上线的完整实战

LTX-2 训练指南:从单卡 LoRA 到多卡分布式训练与模型上线的完整实战

LTX-2 训练指南:从单卡 LoRA 到多卡分布式训练与模型上线的完整实战 【免费下载链接】LTX-2 Official Python inference and LoRA trainer package for the LTX-2 audio–video generative model. 项目地址: https://gitcode.com/GitHub_Trending/lt/LTX-2 导…

📅 2026/9/16 16:28:52
CKEditor 5 从 legacy Online Builder 迁移到新安装方式(NIM)实战指南

CKEditor 5 从 legacy Online Builder 迁移到新安装方式(NIM)实战指南

CKEditor 5 从 legacy Online Builder 迁移到新安装方式(NIM)实战指南 【免费下载链接】ckeditor5 Powerful rich text editor framework with a modular architecture, modern integrations, and features like collaborative editing. 项目地址: htt…

📅 2026/9/16 16:28:52
MORE NEWS

更多资讯

📰

Yi 模型 4-bit 量化实战:基于 AutoAWQ 的激活感知权重量化完整指南

Yi 模型 4-bit 量化实战:基于 AutoAWQ 的激活感知权重量化完整指南 【免费下载链接】Yi A series of large language models trained from scratch by developers 01-ai 项目地址: https://gitcode.com/GitHub_Trending/yi/Yi 本指南以 Yi-1.5-6B-Chat 为例&…

📰

OpenMetadata 前端 React 实战:Effect Event 严禁写入依赖数组(useEffectEvent 依赖治理指南)

OpenMetadata 前端 React 实战:Effect Event 严禁写入依赖数组(useEffectEvent 依赖治理指南) 【免费下载链接】OpenMetadata The Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data conte…

📰

Wand-Enhancer 使用指南:本地补丁加手机远程面板,一次配置长期使用

Wand-Enhancer 使用指南:本地补丁加手机远程面板,一次配置长期使用 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 你刚在电…

📰

anarlog 的 fix-ready-prs Skill:基于 gh CLI 与 GraphQL 的 PR 就绪状态巡检与修复工作流

anarlog 的 fix-ready-prs Skill:基于 gh CLI 与 GraphQL 的 PR 就绪状态巡检与修复工作流 【免费下载链接】anarlog Open source Granola AI Alternative 项目地址: https://gitcode.com/GitHub_Trending/hy/anarlog 导读 本文基于 anarlog 仓库中 .agents…

📰

Gumroad 本地开发环境用户与认证(Users Authentication)完全指南

Gumroad 本地开发环境用户与认证(Users & Authentication)完全指南 【免费下载链接】gumroad See what sticks 项目地址: https://gitcode.com/GitHub_Trending/gumr/gumroad 本文围绕 Gumroad 开源仓库的 docs/users.md 展开,系统…

📰

3步做出面试加分简历:Magic Resume AI简历编辑器上手指南

3步做出面试加分简历:Magic Resume AI简历编辑器上手指南 【免费下载链接】magic-resume free online AI resume editor,the only official website is https://magicv.art 项目地址: https://gitcode.com/GitHub_Trending/ma/magic-resume 投出3…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬