Fast-Context is a Rust codebase analysis library with Node.js and Python bindings.
It is built around Tree-sitter parsing, symbol extraction, dependency analysis, and graph operations. The project is meant for code search, indexing, editor tooling, and assistant-style codebase analysis.
Coming soon: the npm, PyPI, and crates.io packages have not been published yet. The repository and release flow are being finalized before the first public package release.
- analyzes multi-language repositories
- extracts symbols and relationships
- finds symbols by kind or file
- resolves symbol dependencies
- exposes graph types for traversal and metrics
- supports file watching and incremental workflows
The actively maintained surfaces are:
- Rust core library
- Node.js package
- Python bindings
- Codex skills
- Claude plugin skeleton
The commands below describe the intended package install surface after the first public release.
npm install fast-contextpip install fast-contextFor host-specific installation and setup, see docs/HOST_SETUP.md.
That document covers:
- Codex skills, MCP setup, and optional hooks
- Claude plugin installation, bundled skills, plugin MCP, and optional hooks
- standalone MCP installation for non-Codex/non-Claude clients
const { FastContextAnalyzer } = require('fast-context')
const analyzer = new FastContextAnalyzer({
projectRoot: process.cwd(),
ignorePatterns: ['node_modules/**', '.git/**', 'target/**'],
})
const result = analyzer.analyze()
console.log({
files: result.fileCount,
symbols: result.symbolCount,
relationships: result.relationshipCount,
skipped: result.skippedFileCount,
})import fast_context
config = fast_context.AnalyzerConfig(
project_root=".",
ignore_patterns=["node_modules/**", ".git/**", "target/**"],
)
analyzer = fast_context.FastContextAnalyzer(config)
result = analyzer.analyze()
print({
"files": result.file_count,
"symbols": result.symbol_count,
"relationships": len(result.relationships),
"skipped": len(result.skipped_files),
})FastContextAnalyzer currently exposes:
analyze()getAnalysis()startWatching()stopWatching()findSymbolsByKind(kind)findSymbolsInFile(filePath)findDependencies(symbolName)findComplexSymbols(complexityThreshold)
Utility exports:
getVersion()getSupportedLanguages()detectLanguage(filePath)checkConfiguration(config?)getSystemInfo()
For the current typed contract, see index.d.ts and docs/API_REFERENCE.md.
Fast-Context includes parsers for:
- Rust
- JavaScript
- TypeScript
- Python
- Java
- Go
- C and C++
- C#
- Swift
- Objective-C
- PHP
- Ruby
- Scala
- Zig
- Lua
- Bash
- CSS
- HTML
- XML
- JSON
- YAML
- Markdown
cargo check
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo run --bin fast-context --features cli -- --helpnpm install
npm run build:debug
npm testpytest tests/pythonIf you are building native bindings locally, use the versions and host environments exercised by CI where possible.
- API reference
- Deployment guide
- Host setup
- Host integration spec
- Host integration plan
- Release architecture
- Documentation index
- The generated Node typings live in index.d.ts.
- The Node package metadata is rewritten during build/publish steps, so local
package.jsonchurn after native builds is expected. - Cross-platform native artifact truth should come from the GitHub Actions workflows, not a single local machine.
Apache-2.0