| Crates.io | ripmap |
| lib.rs | ripmap |
| version | 0.1.0 |
| created_at | 2025-12-08 21:50:09.08804+00 |
| updated_at | 2025-12-08 21:50:09.08804+00 |
| description | Ultra-fast codebase cartography for LLMs |
| homepage | https://github.com/holo-q/ripmap |
| repository | https://github.com/holo-q/ripmap |
| max_upload_size | |
| id | 1974427 |
| size | 70,304,715 |
Ultra-fast codebase cartography for LLMs.
ripmap reveals the load-bearing structure of your codebase. Not by size, but by structural significance. It uses tree-sitter parsing, PageRank on the symbol graph, and git-aware signals to surface what matters.
$ ripmap .
# Ranking: high (dense) | 1168 symbols | ~10728 tokens
src/ranking/pagerank.rs
class PageRanker:
def:
compute_ranks(...)
build_graph(...)
pagerank(...)
personalization_weight(...)
src/extraction/treesitter.rs
class TreeSitterParser:
def:
extract_tags(...)
get_language(...)
supports_language(...)
Focus on specific areas:
$ ripmap --focus "cache" --tokens 2048
# Ranking: high (dense) | 312 symbols | ~1847 tokens
src/cache/store.rs
class TagCache:
class CacheEntry:
def:
get(...)
set(...)
is_valid(...)
clear(...)
Show call relationships:
$ ripmap --calls --tokens 2048
src/ranking/pagerank.rs
class PageRanker:
def:
compute_ranks
← called by: run, main
build_graph
→ calls: build_defines_index(90%), extract_rel_fname(90%)
← called by: compute_ranks
$ cargo install --path .
Or build from source:
$ cargo build --release
$ ./target/release/ripmap --help
ripmap [OPTIONS] [FILES]...
Arguments:
[FILES]... Files or directories to focus on
Options:
-f, --focus <QUERY> Semantic search across symbol names
-t, --tokens <N> Output token budget [default: 8192]
-e, --ext <EXT> Filter by file extension (repeatable)
-r, --root <PATH> Project root [default: .]
-v, --verbose Show progress messages
--stats Print performance statistics
--calls Show call graph relationships
--git-weight Boost recently changed files
--join Concatenate full file contents
--no-color Disable ANSI colors
-h, --help Print help
-V, --version Print version
Map entire codebase:
$ ripmap .
Focus on specific file:
$ ripmap src/lib.rs
Semantic search:
$ ripmap --focus "auth parser"
Quick overview (fewer tokens):
$ ripmap --tokens 2048
Deep dive with signatures:
$ ripmap --tokens 32768
Rust files only:
$ ripmap -e rs
Full file contents for small projects:
$ ripmap --join -e rs
File Discovery → Tag Extraction → Graph Building → PageRank → Boosts → Rendering
↓ ↓ ↓ ↓ ↓ ↓
ignore tree-sitter petgraph iterative contextual ANSI
crate + .scm DiGraph power signals colors
.gitignore, filters by extensionFunctions that are called by many others rank higher. Entry points and central APIs surface naturally. This mimics how humans navigate code: start at the important nodes, follow references.
Additional languages via tree-sitter grammar files in queries/.
Designed for 1000x speedup over interpreted alternatives:
Typical performance on medium codebases (~1000 files):
| Stage | Time |
|---|---|
| File discovery | ~50ms |
| Tag extraction (cached) | ~100ms |
| PageRank | ~10ms |
| Total | ~200ms |
First run builds cache; subsequent runs are near-instant.
ripmap includes an MCP (Model Context Protocol) server for IDE integration:
$ ripmap-mcp
src/
├── main.rs # CLI entry point
├── lib.rs # Public API
├── discovery/ # File finding
├── extraction/ # tree-sitter parsing
├── callgraph/ # Call relationship resolution
├── ranking/
│ ├── pagerank.rs # Core ranking algorithm
│ ├── boosts.rs # Contextual multipliers
│ ├── focus.rs # Semantic search
│ └── git.rs # Recency/churn signals
├── rendering/ # Terminal output
├── cache/ # Persistent tag storage
└── mcp/ # MCP server
MIT