Composable graph tooling for analysis, construction, and refinement
Project description
GraphForge
Composable graph tooling for analysis, construction, and refinement
A lightweight, embedded, openCypher-compatible graph engine for research and investigative workflows
Why GraphForge?
Modern data science and ML workflows increasingly produce graph-shaped data—entities and relationships extracted from text, tables, and LLM outputs. Yet practitioners face a painful choice:
| NetworkX | Production DBs (Neo4j, Memgraph) | |
|---|---|---|
| Durability | Manual serialization only | ✓ Persistent |
| Query language | None | Cypher |
| Operational overhead | Minimal | High (services, config) |
| Notebook-friendly | ✓ | ✗ |
| Iterative analysis | ✓ | Poor |
GraphForge fills the gap—embedded, durable, and declarative—without running external services.
We are not building a database for applications.
We are building a graph execution environment for thinking.
Features
- Embedded & local-first — No server, no daemon. Runs entirely inside your Python process.
- openCypher subset — Declarative pattern matching with semantic correctness validated against the TCK.
- Graph-native execution — Adjacency-based traversal, not relational joins.
- Durable but disposable — Persist graphs across restarts; treat them as analytical artifacts.
- Python-first — Designed for notebooks, scripts, and agentic pipelines.
Planned v1 Scope
- MATCH (nodes, relationships, directionality)
- WHERE (boolean logic, comparisons, property access)
- RETURN, LIMIT, SKIP
- Node and relationship materialization
- Optional Pydantic-backed data models for validation
Installation
# Using uv (recommended)
uv add graphforge
# Using pip
pip install graphforge
Requirements: Python 3.10+
Quick Start
from graphforge import GraphForge
# Create a graph (API in development)
db = GraphForge("my-graph.db")
# Execute openCypher queries
rows = db.execute("""
MATCH (n:Person)
WHERE n.age > 30
RETURN n.name
LIMIT 5
""")
Note: GraphForge is early in development. The core API and storage layer are being built out per the requirements document.
Design Principles
- Spec-driven correctness — openCypher semantics over performance.
- Deterministic & reproducible — Stable behavior across runs.
- Inspectable — Query plans, storage layout, and execution behavior are observable.
- Replaceable internals — Minimal operational overhead, stable APIs.
Links
- Requirements document — Full scope, TCK strategy, and design rationale
- openCypher AST spec
- Runtime value model
License
MIT © David Spencer
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file graphforge-0.1.0.tar.gz.
File metadata
- Download URL: graphforge-0.1.0.tar.gz
- Upload date:
- Size: 27.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5a470a3382dc95a5b6c55318bca6a6ea6f7746f8d3bb9b994cebfe19e8cf866
|
|
| MD5 |
4bdf23a649c7d02dddad066d6721c990
|
|
| BLAKE2b-256 |
1091cbb9c213efdf748958c8bb280db637badbbc11435f2777115080dc50e521
|
File details
Details for the file graphforge-0.1.0-py3-none-any.whl.
File metadata
- Download URL: graphforge-0.1.0-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
396bf814fd44c7f0f2347df87c599e22442b83c55c100adfce2fc7fb1e5eff6e
|
|
| MD5 |
5bf5b2b10c4197b454feaff33f9dff99
|
|
| BLAKE2b-256 |
41af8b53f34b58bf13ca9ec972839db2a757537be120f15b1f00de509bed9423
|