코드에 타입 주석을 추가하지 않아도 타입을 추론하고, 정의되지 않은 메서드나 nil 수신자처럼 확실한 버그만 보고하는 Ruby 정적 분석기입니다.
roundhouse-rb/roundhouse
Rails 애플리케이션을 분석해 Rust, Go, TypeScript 등의 독립 실행형 프로젝트나 네이티브 Spinel 바이너리로 컴파일하는 도구입니다.
- 스타
- 527
- 포크
- 49
- 열린 이슈
- 163
- 마지막 커밋
- 14시간 전
어떤 프로젝트인가요?
Roundhouse는 타입 주석을 추가하거나 앱을 부팅하거나 데이터베이스에 연결하지 않고, 수정되지 않은 Rails 소스를 전체 프로그램 타입 추론으로 분석합니다. 추론 결과에는 연관 관계의 반환 타입, 모델 컬럼, nil이 될 수 있는 결과가 포함됩니다. 같은 분석을 바탕으로 터미널과 CI에서 사용하는 `check` 명령, 에디터용 LSP 서버, AI 에이전트용 MCP 서버를 제공합니다.
이 분석 결과를 사용해 트랜스파일러는 Rust, Go, TypeScript, Crystal, Elixir, Kotlin, Swift, Python, C#, Ruby 등 여러 대상 언어 중 하나로 독립 실행형 프로젝트를 생성합니다. 생성된 코드는 자체 테스트를 포함하며 런타임에 Rails가 필요하지 않습니다. 같은 URL에 대해 Rails와 각 대상 프로젝트가 반환하는 응답을 비교해 출력을 검증합니다. 별도의 경로에서는 Spinel을 통해 Ruby 코드를 사전에 컴파일해 단일 네이티브 바이너리로 만들며, 기본 데이터베이스로 SQLite를 사용합니다.
프로젝트 문서에는 샘플 블로그 픽스처에서 Rails와 생성된 코드의 처리량을 비교한 벤치마크 결과가 포함되어 있습니다.
핵심 기능
- 01타입 주석이 없는 Rails 코드에서 타입과 nil 안전성을 추론합니다.
- 02터미널과 CI 파이프라인에서 사용할 수 있는 `check` 명령을 제공합니다.
- 03에디터와 AI 에이전트용 LSP 서버 및 MCP 서버를 제공합니다.
- 04Rails 앱을 12개 언어의 독립 실행형 프로젝트로 트랜스파일합니다.
- 05Rails 구조를 따르는 Ruby 코드를 Spinel을 통해 네이티브 바이너리로 컴파일합니다.
활용 사례
- Ruby 인터프리터 없이 Rails 애플리케이션을 컴파일된 바이너리로 실행합니다.
- CI에서 Rails 코드베이스의 타입 문제나 N+1 쿼리를 검사합니다.
- Rails 앱의 로직을 Go, Rust, TypeScript 서비스로 옮깁니다.
- 에디터나 AI 에이전트로 Rails 앱의 요청 흐름을 살펴봅니다.
빠른 시작
- 1
설치 스크립트로 사전 빌드된 바이너리를 설치합니다
README의 공식 안내에 따라 설치 - 2
바이너리가 실행되는지 확인합니다
roundhouse --version - 3
Rails 애플리케이션을 분석합니다
roundhouse check --continue /path/to/your/rails/app
사용 전 알아둘 점
- 사전 빌드된 바이너리는 Apple silicon Mac과 Linux x86-64에서만 테스트되었습니다. Intel Mac 및 Windows 빌드는 테스트되지 않았습니다.
- 주요 입력 대상은 Rails 애플리케이션이므로, Ruby를 무엇이든 변환하는 범용 도구는 아닙니다.
포함된 컬렉션
토픽
자주 묻는 질문
- roundhouse은(는) 무엇인가요?
- Rails 애플리케이션을 분석해 Rust, Go, TypeScript 등의 독립 실행형 프로젝트나 네이티브 Spinel 바이너리로 컴파일하는 도구입니다. Roundhouse는 타입 주석을 추가하거나 앱을 부팅하거나 데이터베이스에 연결하지 않고, 수정되지 않은 Rails 소스를 전체 프로그램 타입 추론으로 분석합니다. 추론 결과에는 연관 관계의 반환 타입, 모델 컬럼, nil이 될 수 있는 결과가 포함됩니다. 같은 분석을 바탕으로 터미널과 CI에서 사용하는 `check` 명령, 에디터용 LSP 서버, AI 에이전트용 MCP 서버를 제공합니다.
- roundhouse은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- roundhouse은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- roundhouse은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. roundhouse의 마지막 커밋은 2026년 11월 5일입니다.
- roundhouse은(는) 어디에 사용할 수 있나요?
- Ruby 인터프리터 없이 Rails 애플리케이션을 컴파일된 바이너리로 실행합니다. CI에서 Rails 코드베이스의 타입 문제나 N+1 쿼리를 검사합니다. Rails 앱의 로직을 Go, Rust, TypeScript 서비스로 옮깁니다. 에디터나 AI 에이전트로 Rails 앱의 요청 흐름을 살펴봅니다.
- roundhouse는 어떻게 설치하나요?
- 설치 스크립트로 사전 빌드된 바이너리를 설치합니다 바이너리가 실행되는지 확인합니다: roundhouse --version Rails 애플리케이션을 분석합니다: roundhouse check --continue /path/to/your/rails/app
- roundhouse은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/roundhouse-rb/roundhouse
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
에디터 플러그인에서 주로 사용하는 Python 자동 완성, 정의로 이동, 리팩터링 및 코드 검색용 정적 분석 라이브러리입니다.
Rust로 작성된 초고속 TypeScript/JavaScript 컴파일러이자 파서로, Rust와 JavaScript에서 모두 사용할 수 있습니다.
파서, 린터, 포매터, 트랜스포머, 미니파이어, 리졸버를 포함한 Rust 기반 고성능 JavaScript 및 TypeScript 도구 모음입니다.
대상 환경에서 실행할 수 있도록 차세대 JavaScript 문법을 변환하는 컴파일러입니다.
Zen C는 읽기 쉬운 GNU C11로 컴파일되며 C 수준의 성능을 제공하는, 고수준의 편의성을 갖춘 시스템 프로그래밍 언어입니다.