tree-sitter-java
Java grammar for tree-sitter
What it is and what it does
tree-sitter-java is a language grammar binding that integrates Java parsing into the tree-sitter incremental parsing framework. It allows you to parse Java source code into a syntax tree that can be queried and analyzed programmatically. The package provides precompiled wheels for multiple platforms, reducing installation complexity compared to building from source.
The package is part of the broader tree-sitter ecosystem and is used primarily by developers building code analysis tools, linters, refactoring utilities, or IDE features that need to understand Java syntax. It has no runtime dependencies and supports current Python versions starting from 3.9.
Use it for:
- Build a code analysis tool that traverses Java syntax trees to detect patterns or enforce style rules.
- Implement a Java refactoring utility that parses and transforms Java source code programmatically.
- Create an IDE plugin or language server that needs fast, incremental parsing of Java files.
- Extract metrics or metadata from Java codebases by querying the parsed syntax tree.
- Develop a code formatter or linter that understands Java grammar structure.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a Java language grammar for tree-sitter, enabling incremental parsing and syntax tree analysis of Java source code.
Yes, if you need programmatic Java parsing with incremental updates. The package is stable, permissively licensed, and has no runtime dependencies. Install friction is moderate due to compilation, but prebuilt wheels are available for common platforms. The aging maintenance status (601 days since release) is not a blocker for a grammar binding, which changes less frequently than application code, but verify that the Java grammar version meets your feature requirements.
Install
tree-sitter-java on PyPI
pip
pip install tree-sitter-javauv
uv add tree-sitter-javapoetry
poetry add tree-sitter-javaInstalling tree-sitter-java
Before you install
Medium install friction due to compiled wheels; prebuilt binaries available for common platforms (macOS x86_64/arm64, Linux x86_64/aarch64, Windows x64/arm64) but requires Python 3.9+. Package is aging (601 days since last release) but repository remains active with recent commits.
License in practice
MIT license permits unrestricted use, modification, and distribution with minimal restrictions, making it suitable for both open-source and proprietary projects.
Quickstart
pip install tree-sitter-java
from tree_sitter_java import language
Requires Python 3.9 or later; tree-sitter framework must be installed separately.
Verify before relying
- Whether tree-sitter Python bindings are automatically pulled in or must be manually installed.
- Performance characteristics for large codebases or real-time parsing scenarios.
- Completeness of Java grammar coverage (e.g., Java 17+ features, records, sealed classes).
- How to instantiate and use the language grammar once imported.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | aging — 601 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 10,836,915/month — #1,432 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: tree_sitter_java-0.23.5-cp39-abi3-macosx_10_9_x86_64.whl; tree_sitter_java-0.23.5-cp39-abi3-macosx_11_0_arm64.whl; tree_sitter_java-0.23.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; tree_sitter_java-0.23.5-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl; tree_sitter_java-0.23.5-cp39-abi3-musllinux_1_2_x86_64.whl; tree_sitter_java-0.23.5-cp39-abi3-win_amd64.whl; tree_sitter_java-0.23.5-cp39-abi3-win_arm64.whl
Keywords: incremental, parsing, tree-sitter, java
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
javalangjavalang is a pure Python lexer and parser for…
permissive · top 15,000 on PyPI
tree-sitter-c-sharpProvides a C# language parser for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-cmakeProvides a tree-sitter grammar for parsing…
permissive · top 15,000 on PyPI
tree-sitter-cppProvides a C++ language grammar for…
permissive · top 5,000 on PyPI
tree-sitter-cssProvides a CSS grammar parser for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-embedded-templateProvides a tree-sitter parser for embedded…
permissive · top 5,000 on PyPI
tree-sitter-fortranProvides a Fortran 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-htmlProvides an HTML grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-javascriptProvides a JavaScript and JSX parser grammar…
permissive · top 5,000 on PyPI