big-code-analysis
This documentation is also available in Japanese.
big-code-analysis is a Rust library and command line tool (bca)
that computes maintainability metrics from source code in many
programming languages. It parses with
tree-sitter,
an incremental parsing library with a grammar per language, so it needs
no compiler or language runtime.
This book is task-oriented: metric definitions, the command reference, CI recipes, and guides for the Rust crate and the Python bindings. The source code is on GitHub, and issues and feature requests go to the issue tracker.
Supported platforms
big-code-analysis runs on Linux, macOS, and Windows. The GitHub releases page carries prebuilt binaries for all three.
API docs
The complete
Rustdoc
reference for the crate (every public type, trait,
and function, including the feature-gated vcs module) lives on
docs.rs,
generated straight from the source.
For task-oriented guides on embedding the crate (quick start,
in-memory analysis, walking FuncSpace results, and error
handling), see Using as a Library.
For the PyO3 bindings
(pip install big-code-analysis, batch processing, flat-record
iteration,
SARIF
output, and async patterns), see Python Bindings.
License
-
The vendored grammar crates (
tree-sitter-ccomment,tree-sitter-mozcpp,tree-sitter-mozjs,tree-sitter-preproc,tree-sitter-tcl) are released under the MIT license. -
big-code-analysis, big-code-analysis-ast, big-code-analysis-cli, big-code-analysis-web, and big-code-analysis-py are released under the Mozilla Public License v2.0.