Repolode
rubys

rubys/roundhouse

读取 Rails 应用的 Ruby 源码,编译为 Rust、Go、TypeScript 等多种目标语言的独立项目。

Star
488
Fork
43
未关闭 Issue
163
最近提交
10小时前

这是什么?

Roundhouse 通过整程序类型推断分析未经修改的 Rails 源码,无需类型注解,也无需启动应用或连接数据库。推断结果包括关联返回的类型、模型字段及其类型,以及方法可能返回 nil 的情况。同一套分析可用于终端和 CI 中的 `check` 命令、编辑器的 LSP 服务,以及供 AI 代理使用的 MCP 服务。

基于这套分析,转译器可以生成独立项目,目标语言包括 Rust、Go、TypeScript、Crystal、Elixir、Kotlin、Swift、Python、C# 和 Ruby。生成的代码自带测试,运行时不依赖 Rails。项目通过对比 Rails 与各目标端对同一 URL 的响应来验证输出。另有一条路径可借助 Spinel 将 Ruby 代码提前编译为单个原生二进制文件,默认使用 SQLite 作为数据库。

核心功能

  • 01无需类型注解,从 Rails 源码中推断类型和空值安全信息。
  • 02提供 `check` 命令,可用于终端和 CI 流程。
  • 03提供 LSP 服务与 MCP 服务,分别对接编辑器和 AI 代理。
  • 04可将 Rails 应用转译为十余种目标语言的独立项目。
  • 05通过 Spinel 将类 Rails 的 Ruby 代码编译为原生二进制。

适用场景

  • 将 Rails 应用编译为无需 Ruby 解释器的原生可执行文件。
  • 在 CI 中检查 Rails 代码的类型问题或 N+1 查询。
  • 将 Rails 应用的逻辑迁移到 Go、Rust 或 TypeScript 服务。
  • 在编辑器或 AI 代理中梳理 Rails 应用的请求流程。

快速上手

  1. 1

    使用安装脚本安装预编译二进制文件

    curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rubys/roundhouse/releases/latest/download/roundhouse-installer.sh | sh
  2. 2

    确认二进制文件可以运行

    roundhouse --version
  3. 3

    分析你的 Rails 应用

    roundhouse check --continue /path/to/your/rails/app

使用前须知

  • 预编译二进制文件仅在 Apple silicon 版 macOS 和 x86-64 版 Linux 上经过测试;macOS Intel 和 Windows 版本未经测试。
  • 它的主要输入是 Rails 应用,因此并不是通用的 Ruby 转换工具。

标签

常见问题

roundhouse 是什么?
读取 Rails 应用的 Ruby 源码,编译为 Rust、Go、TypeScript 等多种目标语言的独立项目。 Roundhouse 通过整程序类型推断分析未经修改的 Rails 源码,无需类型注解,也无需启动应用或连接数据库。推断结果包括关联返回的类型、模型字段及其类型,以及方法可能返回 nil 的情况。同一套分析可用于终端和 CI 中的 `check` 命令、编辑器的 LSP 服务,以及供 AI 代理使用的 MCP 服务。
roundhouse 可以免费使用吗?用的什么许可证?
roundhouse 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
roundhouse 还在维护吗?
活跃维护中。roundhouse 最近一次提交是在 2026年10月19日。
roundhouse 适合用来做什么?
将 Rails 应用编译为无需 Ruby 解释器的原生可执行文件。 在 CI 中检查 Rails 代码的类型问题或 N+1 查询。 将 Rails 应用的逻辑迁移到 Go、Rust 或 TypeScript 服务。 在编辑器或 AI 代理中梳理 Rails 应用的请求流程。
roundhouse 怎么安装和运行?
使用安装脚本安装预编译二进制文件: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rubys/roundhouse/releases/latest/download/roundhouse-installer.sh | sh 确认二进制文件可以运行: roundhouse --version 分析你的 Rails 应用: roundhouse check --continue /path/to/your/rails/app
在哪里获取 roundhouse?
源代码和安装说明在 GitHub 上:https://github.com/rubys/roundhouse

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目