Metadata-Version: 2.3
Name: blarify
Version: 1.3.8
Summary: A simple graph builder based on LSP calls
License: MIT
Author: Juan Vargas
Author-email: juan@blar.io
Requires-Python: >=3.11,<=3.14
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: asyncio (>=3.4.3,<4.0.0)
Requires-Dist: docker (>=7.1.0,<8.0.0)
Requires-Dist: falkordb (>=1.0.10,<2.0.0)
Requires-Dist: fastmcp (>=2.12.0,<3.0.0)
Requires-Dist: filelock (>=3.16.1,<4.0.0)
Requires-Dist: jedi-language-server (>=0.43.1,<0.44.0)
Requires-Dist: json-repair (>=0.47.7,<0.48.0)
Requires-Dist: langchain (>=0.3.26,<0.4.0)
Requires-Dist: langchain-anthropic (>=0.3.17,<0.4.0)
Requires-Dist: langchain-google-genai (>=2.1.7,<3.0.0)
Requires-Dist: langchain-openai (>=0.3.28,<0.4.0)
Requires-Dist: langgraph (>=0.5.2,<0.6.0)
Requires-Dist: neo4j (>=5.25.0,<6.0.0)
Requires-Dist: protobuf (==6.31.1)
Requires-Dist: psutil (>=7.0.0,<8.0.0)
Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
Requires-Dist: requests (>=2.32.3,<3.0.0)
Requires-Dist: rich (>=14.1.0,<15.0.0)
Requires-Dist: tree-sitter (>=0.23.2,<0.24.0)
Requires-Dist: tree-sitter-c-sharp (>=0.23.1,<0.24.0)
Requires-Dist: tree-sitter-go (>=0.23.4,<0.24.0)
Requires-Dist: tree-sitter-java (>=0.23.5,<0.24.0)
Requires-Dist: tree-sitter-javascript (>=0.23.0,<0.24.0)
Requires-Dist: tree-sitter-php (>=0.23.11,<0.24.0)
Requires-Dist: tree-sitter-python (>=0.23.2,<0.24.0)
Requires-Dist: tree-sitter-ruby (>=0.23.0,<0.24.0)
Requires-Dist: tree-sitter-typescript (>=0.23.2,<0.24.0)
Requires-Dist: typing-extensions (>=4.12.2,<5.0.0)
Requires-Dist: vendoring (>=1.2.0,<2.0.0)
Requires-Dist: websockets (>=13.1,<14.0)
Project-URL: Homepage, https://blar.io
Project-URL: Repository, https://github.com/blarApp/blarify
Description-Content-Type: text/markdown

This repo introduces a method to represent a local code repository as a graph structure. The objective is to allow an LLM to traverse this graph to understand the code logic and flow. Providing the LLM with the power to debug, refactor, and optimize queries.

# Supported Languages

- Python
- JavaScript
- TypeScript
- Ruby
- Go
- C#

# Example

<img src="https://raw.githubusercontent.com/blarApp/blarify/refs/heads/main/docs/visualisation.png"></img>
This graph was generated from the code in this repository.

# Quickstart

Get started with blarify by following our quickstart guide:

[➡️ Quickstart Guide](https://github.com/blarApp/blarify/blob/main/docs/quickstart.md)

## Dependencies

### SCIP Support (Optional, for faster reference resolution)

For enhanced performance, blarify supports SCIP (Source Code Intelligence Protocol) which provides up to 330x faster reference resolution compared to LSP.

Install the SCIP Python indexer:

```bash
# Install scip-python globally via npm
npm install -g @sourcegraph/scip-python
```

**Note**: SCIP provides identical accuracy to LSP but with dramatically better performance. When available, blarify will automatically use SCIP for reference resolution.

# Article

Read our article on Medium to learn more about the motivation behind this project:

[➡️ How we built a tool to turn any codebase into a graph of its relationships](https://medium.com/@v4rgas/how-we-built-a-tool-to-turn-any-code-base-into-a-graph-of-its-relationships-23c7bd130f13)

# Future Work

- [x] Gracefully update the graph when new files are added, deleted, or modified
- [x] Add more language servers
- [ ] Experiment with parallelizing the language server requests

# Need help?

If you need help, want to report a bug, or have a feature request, please open an issue on this repository.

You can also reach out to us at [Discord](https://discord.gg/s8pqnPt5AP)

