The one data index for your agentic applications
NeuG (pronounced "new-gee") is a high-performance, graph-native transactional database that runs embedded in your application or behind a service. It provides durable storage, explicit transactions, Cypher-native querying, and in-place graph analytics.
Built on this data foundation, NeuG is the one data index for your agentic applications—indexing structure, semantics, and exact keywords over the same managed data. For more information, see the NeuG documentation.
- 2026-09 — NeuG v0.2: HNSW vector search, BM25 full-text search and explicit transactions
- 2026-07 — NeuG is listed in Database of Databases
Previous news
- **2026-06** — NeuG v0.1.3: [GDS extensions](https://neug.io/docs/extensions/load_gds/), [`COPY TEMP`](https://neug.io/docs/data_io/import_data/), [Node.js client](https://neug.io/docs/reference/nodejs_api/) - **2026-05** — NeuG v0.1.2: [`LOAD FROM`](https://neug.io/docs/data_io/load_data/), [Parquet](https://neug.io/docs/extensions/load_parquet/) & [HTTPFS](https://neug.io/docs/extensions/load_httpfs/) extensions - **2026-03** — NeuG v0.1 released - **2025-06** — GraphScope Flex, the engine foundation behind NeuG, set an [LDBC SNB Interactive Benchmark record](https://graphscope.io/blog/tech/2025/06/12/graphscope-flex-achieved-record-breaking-on-ldbc-snb-interactive-workload-declarative) with 80,000+ QPSThe packages support Linux and macOS on x86_64 and ARM64. Windows users can run NeuG through WSL2; native Windows support is on the roadmap. For more detailed instructions (including C++ from source), see the installation guide.
Python · requires Python 3.8+
pip install neugNode.js · requires Node.js 20+ (since v0.1.3)
npm install @graphscope-neug/neugThe same data can be queried by graph structure, vector similarity, or exact keywords. With the extensions installed and Service and Runbook data already loaded:
import neug
db = neug.Database("agent.db")
conn = db.connect()
conn.execute("LOAD vector_search;")
conn.execute("LOAD fts;")
conn.execute("CREATE INDEX runbook_vec ON Runbook USING HNSW (embedding) WITH (metric = 'l2');")
conn.execute("CREATE INDEX runbook_text ON Runbook USING FTS (content);")
query_embedding = [0.1, 0.2, 0.3, 0.4]
# Structure
conn.execute("""
MATCH (:Service {name: 'PaymentService'})-[:HAS_RUNBOOK]->(r:Runbook)
RETURN r.title
""")
# Semantics — accelerated by an HNSW index on Runbook.embedding
conn.execute("""
MATCH (r:Runbook)
RETURN r.title, vector_distance_l2(r.embedding, $embedding) AS distance
ORDER BY distance ASC LIMIT 5
""", parameters={"embedding": query_embedding})
# Keywords — ranked by an FTS index on Runbook.content
conn.execute("""
MATCH (r:Runbook)
RETURN r.title, bm25(r.content, 'retry timeout') AS score
ORDER BY score ASC LIMIT 5
""")Create an HNSW index · Create a full-text index
NeuG provides complementary ways to retrieve and analyze the same entities and properties:
| What NeuG indexes | What it enables | |
|---|---|---|
| Structure | Entities, relationships, and graph topology | Cypher traversal, pattern matching, PageRank, Leiden, shortest paths, and more |
| Semantics | Dense vector properties with HNSW | Similarity search using cosine, L2, or inner-product distance |
| Keywords | Text properties with full-text indexes | BM25-ranked word, phrase, prefix, Boolean, and exclusion search |
Structure is native to NeuG's graph storage. Vector and full-text indexes are maintained with the same underlying graph properties: graph changes and index changes commit atomically, and committed indexes recover with the graph through checkpoints and the write-ahead log.
Run NeuG in-process for local agent workflows and low-overhead analytics. When concurrent applications need network access, expose the same runtime as a service with db.serve().
See the reproducible dual-mode benchmark for complete results and methodology.
For building NeuG from source, see the Development Guide. We welcome contributions — please read the Contributing Guide before submitting issues or pull requests.
AI-Assisted Workflow
We apply an AI-assisted Spec-Driven workflow inspired by GitHub Spec-Kit:
- 🐛 Bug Reports: Use
/create-issuecommand in your IDE, or submit an issue manually - 💻 Pull Requests: Use
/create-prcommand in your IDE, or submit a PR manually
For more details, see the AI-Assisted Development Guide.
NeuG builds upon the excellent work of the open-source community. We would like to acknowledge:
- Kùzu: Our C++ Cypher compiler is adapted from Kùzu's implementation
- DuckDB: Our runtime value system and extension framework are inspired by DuckDB's architecture
- zvec: Its in-process vector indexing engine provides the HNSW foundation for NeuG's vector search extension
NeuG is distributed under the Apache License 2.0.