Reko
A Rust CLI that extracts every function in a repository, across 15 languages, into one fixed 215-field IR with byte-exact reconstruction and built-in semantic search.
What it is
Reko turns any repository into machine-readable structured data for downstream code intelligence.
Every function and method in 15 languages (Java, Python, C, C++, PHP, JavaScript, JSX, C#, TypeScript, TSX, Go, Rust, Swift, Ruby and Kotlin) is emitted against a fixed 215-field intermediate representation, producing one hierarchical JSONL file of folders → files → methods. The reader is byte-exact: tabs, trailing spaces, line endings and a missing final newline all survive, so reconstructed source is identical to the original.
01
One IR for 15 languages
Language-aware extractors (brace-, indent- and def→end-scoped, string- and comment-aware) with sha256 hashes and line, column and byte locations.
02
Semantic search built in
reko index embeds every function with EmbeddingGemma-300M (ONNX, 768-d) into sqlite-vec, with the model cached once and shared across repositories.
03
Production surface
.gitignore-aware parallel walker (rayon), a pluggable extractor factory, 83 unit tests, and three-OS CI with release binaries.