用 Rust 编写的静态分析引擎,将源码转为紧凑的程序图,并生成 19 种 UML 与编译器中间表示图。
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
使用安装脚本安装预编译二进制文件
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rubys/roundhouse/releases/latest/download/roundhouse-installer.sh | sh - 2
确认二进制文件可以运行
roundhouse --version - 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 数据每日更新。
相关项目
17340RustMIT更新于 3天前
TypeScript 7 编译器(tsc)的实验性 Rust 移植版,保持相同的命令行、语言服务和 API。
137392RustMIT更新于 5小时前
可自托管的网页群聊应用,支持多房间、私信、搜索、文件附件和机器人 API,可通过单个 Docker 镜像部署。
4790819RubyMIT更新于 3天前
跨平台、基于 OpenGL 的 GPU 加速终端模拟器,标签页和分屏交给 tmux 等工具完成。
6.6万3653RustApache-2.0更新于 4天前
一个更智能的 cd 命令,记住常用目录,几个按键即可跳转,支持主流 shell。
4万929RustMIT更新于 前天
一个用 Rust 编写的邮箱验证工具,可在不发送邮件的情况下检测邮箱地址是否存在。
1万745RustMIT更新于 3天前