跳到正文
Hacker News (official RSS)(rustoffrails.org)·· 3 小時前精選AI 評分73

Rust off Rails:面向 AI 時代的堅定 Web 堆疊

Rust off Rails: The opinionated web stack for the AI era

AI 導讀

Rust off Rails 是一套零程式碼的 Web 框架,透過 Markdown 指令讓 AI 代理自動生成完整的 Rust 前後端應用。

  • - 核心特性:零程式碼庫,所有程式碼由 AI 代理生成。
  • 提供完整的 CRUD、認證、作業排程、即時通訊等功能。
推薦理由

這篇文章展示瞭如何利用 Markdown 指令讓 AI 代理自動生成完整的 Rust Web 應用,對想快速開發 Rust 前端後端的工程師有實用參考價值,並且提供完整安裝指令碼、測試覆蓋率與可擴充的外掛機制,讓開發流程更順暢。

正文 · AI 翻譯

一個零程式碼釋出的網路框架

Rust off Rails 是一組 Markdown 檔案,告訴程式開發代理如何構建一個完整的 Rust 網頁應用:一個被祝福的堆疊,一個佈局,做每件事的唯一方式。慣例存在於文字中。代理會寫程式碼。

curl -fsSL https://rustoffrails.org/install.sh | sh

或在 Claude Code: /plugin marketplace add rust-off-rails/rustoffrails

閱讀後再執行:安裝指令碼 · INSTALL.md

Railboard:由 AI 在 7 個提示中建構的即時看板 3:06 · 在 YouTube 上觀看
  • 0 行框架程式碼
  • 60 個 Markdown 檔案
  • 2 個資料庫,程式碼相同

~/code/bookshelf, claude

一個示意化的代理會話:/offrails:new 指令、訪談、計畫、產生的檔案,以及在 SQLite 與 Postgres 上通過的測試。
  1. > /offrails:new bookshelf: 人們追蹤並審閱書籍,後續提供手機應用程式的 API
  2. ● 閱讀 AGENTS.md → 訪談 · 原則 · 結構 · 堆疊 · 工作流程
  3. ? 帳戶? a) 魔法連結 (推薦) b) 電子郵件 + 密碼 c) 只限邀請 d) 無
  4. › a
  5. ? 誰擁有資料? a) 每位使用者 (推薦) b) 團隊 c) 共享
  6. › 你決定
  7. ? 前端? a) htmx (推薦) b) inertia c) spa d) api
  8. › b
  9. ? UI 套件? a) React (推薦) b) Svelte
  10. › b
  11. ? 供其他程式使用的 API? a) 無 b) REST + OpenAPI c) GraphQL d) 兩者皆有
  12. › b
  13. ◆ 計畫:inertia + Svelte · API rest · 產環境使用 Postgres(本機使用 SQLite)
  14. Book 標題、作者、評分 1–5 · 屬於 User
  15. Review 內容、星級 1–5 · 屬於 Book
  16. API /api/v1/books, /api/v1/reviews · bearer tokens
  17. › 是
  18. + migration/src/m20261013_120000_create_books.rs
  19. + src/models/book.rs · src/controllers/books.rs
  20. + web/src/pages/Books/Index.svelte (+ 71 more)
  21. ✓ cargo clippy --all-targets -- -D warnings
  22. ✓ pnpm --dir web typecheck · svelte-check
  23. ✓ cargo nextest run · SQLite · 142 passed
  24. ✓ cargo nextest run · Postgres 18 · 142 passed
  25. 完成定義:綠色。執行 bin/setup && bin/dev

它是什麼

一個由 決策 組成的框架,而非程式碼。

其他框架會提供函式庫。Rust off Rails 給你的代理判斷力:每一個本來會即興決定的選擇,已經事先決定並寫下來。

創始規則

所有程式碼均由 AI 撰寫

每一行 Rust、SQL、HTML、CSS、TypeScript 以及每一個 Dockerfile 都由代理撰寫。人類撰寫意圖:specs 在 product/,訪談中的答案,對話中的回饋。永遠不寫程式碼。這是其他人依賴的規則:樣板免費,慣例由代理執行,specs 為真實來源。閱讀 §0。

Markdown 是框架

當框架會提供函式庫時,Off Rails 提供精確的 spec。工作佇列、會話與 Inertia 介面卡會以你擁有的程式碼呈現在你的應用中。

堅定的觀點,針對代理

Crate 選擇、檔案佈局、命名、錯誤、測試:一次決定。代理永遠不會爭論 ORM。不一致是敵人,而非不完美。

一切已內建

Auth、jobs、email、caching、uploads、realtime、deploys:每一層都有指引與範例,讓代理永遠不必從空白頁面開始。瀏覽指南。

運作方式

訪談。計畫。產生。綠色。

代理程式只會詢問人類能回答的問題,將答案寫下,只有當兩個資料庫的編譯器和測試套件一致時才算完成。

  1. 01

    面試

    只問產品相關問題,每個都有建議預設值。"誰能看到這個?" 是;"使用哪個 ORM?" 否。說 "你決定",它會採用預設值。

  2. 02

    規劃

    一份簡潔的計畫(資源、頁面、工作、假設),寫入 product/ 規格並附上驗收標準。規格是持久的紀錄;聊天不是。

  3. 03

    產生

    生成器配方,由代理程式執行:遷移 → 模型 → 失敗測試 → 控制器 → 檢視,一次一個垂直切片。

  4. 04

    綠色

    fmt、clippy、SQLite 與 Postgres 測試,所有驗收標準都追蹤到測試,覆蓋門檻。綠色才算完成。

八項技能,對應每個工作

技能功能
/offrails:new面試 → 規劃 → 應用骨架 → 規劃功能,綠色
/offrails:feature先寫規格,再寫程式碼。若無引數:建構 product/ 中變更的部分
/offrails:scaffold在應用程式前端模式下的完整資源
/offrails:generate工作、郵件器、頻道、身份驗證、模型、遷移、任務
/offrails:check完成定義:fmt、clippy、SQLite 與 Postgres 測試
/offrails:doctor根據檔案中的所有慣例審核應用程式
/offrails:deploy部署設定與已驗證的映像;在任何對外釋出前先確認
/offrails:upgrade推進應用程式的套件框架並遷移慣例

使用方式

你寫下意圖,代理程式寫下 其餘所有。

  1. 1

    說出你想要的,或寫在 product/features/*.md。簡單英文。

  2. 2

    代理程式先寫規格,再寫程式碼:遷移、模型、檢視、測試。

  3. 3

    完成即綠色於 SQLite 與 Postgres,所有驗收標準已測試。

閱讀指南

開發工具

檢視 內部 你的應用程式。

追蹤、分析器、本機信箱、工作佈景板與即時存在感,內建。你的代理程式以 JSON 讀取相同資料,能檢查自身工作。

佈景板在釋出版中每個請求約耗費 1 微秒,預設僅用於開發。

參觀導覽

重點

輸入免費時會有什麼變化。

一個包含數十萬行程式碼的庫
60 個 Markdown 檔案
一個程式碼產生器二進位檔
generators/scaffold.md:代理程式執行的配方
慣例優先於設定
慣例優先於深思熟慮:代理程式永不爭論使用哪個 crate
最佳化以提升程式員的快樂
最佳化以確保代理程式正確:所有內容皆經編譯器檢查
魔法,節省鍵入
無魔法。若你不需要手動輸入,明確程式碼才是經濟的。

一口氣描述整個堆疊

每個工作一個 crate。取代不會在表格中進行。

Axum·Tokio·SeaORM SQLite 本地,Postgres 生產環境,程式碼相同·Askama·Tailwind·lettre·tracing·一個二進位檔,一個 Docker 映像檔

FRONTEND_MODE,在面試時選擇一次

htmx 預設值

Askama 模板,編譯時檢查,並搭配 htmx。無需 Node。適用於 CRUD 應用、儀錶板、內容網站(如本網站)。

inertia

React 或 Svelte 頁面,搭配伺服器端路由與控制器,透過產生的 Inertia 介面卡。當你需要 JavaScript UI 時選擇。

spa

獨立的單頁應用加上 JSON API,當 UI 必須是獨立應用時使用。型別透過 Rust 透過 ts-rs 傳遞。

api 進行中

完全沒有 UI:僅有後端與版本化 API,供行動應用、合作夥伴與指令碼使用。

UI_LIBRARY
react(預設)或 svelte,適用於 inertia、spa 以及 htmx islands
API
none、rest(OpenAPI + tokens)、graphql 或 both:一個公開、版本化的 API,獨立於 UI。

以及資料庫:工作佇列、快取與 pub/sub。資料庫即為唯一基礎設施。

立於巨人之上

結合 Rails 與 Phoenix 的最佳特性,一起。

這裡的好點子並非全新。我們挑選兩個我們喜愛框架中最適應時代的理念,為每個賦予 Rust 形式,並為代理寫下。

來自 Ruby on Rails

來自 Elixir 與 Phoenix

還有

實地測試

實際應用,由代理移植。

代理將廣受歡迎的開源應用從 Rails 移植至 Rust。每一次碰到的瑕疵都會回饋到框架。

  • from Fizzy 進行中

    fizzyer

    Fizzy 的看板與卡片,已由代理用 Rust 重新建置。

  • from FreeScout 進行中

    A FreeScout port

    一個共享收件箱的客服系統,已由代理在另一臺機器上建置。

  • from Uptime Kuma 已建置

    uptime-offrails

    1530/1530 個測試在 SQLite 與 Postgres 上皆通過。

使用 GPT-6 Luna Claude Sonnet 5.5 Meta's Muse Wonder 1 GLM 5.3 Flash via opencode 目標:打造小型、低成本的代理,同時完成實際工作。

閱讀實地測試

開始使用

安裝外掛。描述應用。觀察。

1 使用 Claude Code(建議)

/plugin marketplace add rust-off-rails/rustoffrails
/plugin install offrails@offrails

接著,在空目錄中:

/offrails:new bookshelf: people track the books they've read and review them

代理會與你面談,確認計畫,然後建置。技能亦可在簡單請求("make me a new Rust web app…")時觸發。

2 使用 Codex、Cursor,或任何閱讀 AGENTS.md 的代理

Read /path/to/rustoffrails/AGENTS.md and make me a new app called "bookshelf".

產生的應用攜帶 AGENTS.md 與一個 vendored .offrails/,因此後續會話不需設定。

3 然後

以簡單語言描述功能,或將其寫成規格於 product/:

Scaffold Book with title:string, author:string, published_on:date, rating:integer.
Users must be logged in to create books.

完整操作流程 如何使用 閱讀檔案 在 GitHub 上 Star

來源: Hacker News (official RSS) (rustoffrails.org)
開啟原文