tree-sitter-ruby
Ruby grammar for tree-sitter
What it is and what it does
tree-sitter-ruby is a language binding that provides tree-sitter's incremental parsing engine for Ruby code. It ships as pre-built binary wheels for common platforms (macOS, Linux, Windows, ARM), reducing installation friction. The package contains a compiled grammar that can parse Ruby syntax into an abstract syntax tree, enabling tools to analyze, transform, or navigate Ruby code programmatically without invoking the Ruby interpreter.
You use it by importing the language module to access the grammar definition. This is useful for linters, code formatters, refactoring tools, or any application that needs to understand Ruby's structure. The grammar is maintained as part of the official tree-sitter project and references the Whitequark parser's AST format.
Use it for:
- Building a Ruby linter or static analysis tool that needs to traverse code structure.
- Implementing a code formatter or refactoring tool for Ruby projects.
- Creating IDE features like symbol extraction, navigation, or code completion.
- Analyzing Ruby codebases to extract metrics, dependencies, or patterns.
- Integrating Ruby parsing into a polyglot code analysis platform.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a Ruby language grammar for tree-sitter, enabling incremental parsing and abstract syntax tree generation for Ruby code.
Yes, if you need to parse Ruby code programmatically. The package is actively maintained, has no vulnerabilities, carries a permissive MIT license, and requires only Python 3.9+. Install friction is medium due to binary wheels, but prebuilt distributions are available for common platforms. Not necessary if you only need to run Ruby code—use this when you need to analyze or manipulate Ruby syntax.
Install
tree-sitter-ruby on PyPI
pip
pip install tree-sitter-rubyuv
uv add tree-sitter-rubypoetry
poetry add tree-sitter-rubyInstalling tree-sitter-ruby
Before you install
Medium install friction due to binary wheels for multiple platforms (macOS, Linux, Windows, ARM). Actively maintained with recent commits and no runtime dependencies, making setup straightforward once the wheel is available for your platform.
License in practice
MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install tree-sitter-ruby
import tree_sitter_ruby
ruby_lang = tree_sitter_ruby.language()
Requires Python 3.9 or later; binary wheels are available for common platforms but may require compilation on unsupported architectures.
Verify before relying
- Whether the grammar covers all Ruby language features or has known limitations in syntax support.
- Performance characteristics for parsing large Ruby files or codebases.
- Compatibility with specific Ruby versions or syntax dialects.
- How to integrate tree-sitter-ruby with a parser to generate and traverse syntax trees.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 641 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 7,105,410/month — #1,786 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: tree_sitter_ruby-0.23.1-cp39-abi3-macosx_10_9_x86_64.whl; tree_sitter_ruby-0.23.1-cp39-abi3-macosx_11_0_arm64.whl; tree_sitter_ruby-0.23.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; tree_sitter_ruby-0.23.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; tree_sitter_ruby-0.23.1-cp39-abi3-musllinux_1_2_x86_64.whl; tree_sitter_ruby-0.23.1-cp39-abi3-win_amd64.whl; tree_sitter_ruby-0.23.1-cp39-abi3-win_arm64.whl
Keywords: incremental, parsing, tree-sitter, ruby
Tags
More Linguistic packages
Detects and normalizes text encoding from…
permissive · top 100 on PyPI
tiktokentiktoken is a fast BPE tokenizer that converts…
permissive · top 1,000 on PyPI
chardetDetects character encoding and language in byte…
permissive · top 1,000 on PyPI
text-unidecodeConverts Unicode text to ASCII by…
copyleft · top 1,000 on PyPI
larkLark is a parsing library that builds abstract…
permissive · top 1,000 on PyPI
tree-sitterPython bindings to the tree-sitter parsing…
permissive · top 1,000 on PyPI
tree-sitter-pythonProvides a Python grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-groovyProvides a Groovy language grammar for…
permissive · top 5,000 on PyPI
tree-sitter-javaProvides a Java language grammar for…
permissive · top 5,000 on PyPI
gemfileparser2Parses Ruby Gemfiles, .gemspec files, and…
copyleft · top 15,000 on PyPI
tree-sitter-embedded-templateProvides a tree-sitter parser for embedded…
permissive · top 5,000 on PyPI
tree-sitter-phpProvides a PHP language grammar for…
permissive · top 5,000 on PyPI
tree-sitter-swiftProvides a tree-sitter grammar for parsing…
permissive · top 5,000 on PyPI
tree-sitter-kotlinProvides a Kotlin language grammar for…
permissive · top 5,000 on PyPI
tree-sitter-goProvides a Go language grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-juliaProvides incremental parsing of Julia source…
permissive · top 5,000 on PyPI