This release is a pre-release and may not be stable for production use.
GestaltDB
GestaltDB is a pure Python graph database toolkit for attributed graphs. It stores nodes, edges, labels, typed adjacency records, and property indexes on embedded key-value backends.
Documentation: https://mylonasc.github.io/gestaltdb/
Install
From a local checkout:
uv sync
Install into another project:
uv add /path/to/gestaltdb
With pip:
python -m pip install /path/to/gestaltdb
Optional extras include lmdb, leveldb, rocksdb, arrow, polars, fast-ingest, msgpack, protobuf, bloom, docs, dev, and all.
Quick Example
from gestaltdb.graphdb import Edge, GraphDB, Node
from gestaltdb.kvstores import LMDBStore
from gestaltdb.serializers import PickleSerializer
graph = GraphDB(LMDBStore(path="example_lmdb"), PickleSerializer())
graph.put_node(Node(node_id="alice", labels=["Person"], properties={"name": "Alice"}))
graph.put_node(Node(node_id="bob", labels=["Person"], properties={"name": "Bob"}))
graph.put_edge(Edge(
edge_id="alice-knows-bob",
source="alice",
target="bob",
properties={"type": "knows", "since": 2024},
))
result = graph.query('MATCH (a:Person {name: "Alice"}) MATCH (a)-[:knows]->(b) RETURN a.id, b.name')
print(result.records)
graph.close()
Features
- Attributed
NodeandEdgeobjects with stable IDs. - Native node labels and typed edge traversal through
edge.properties["type"]. - LMDB, LevelDB, and RocksDB/PyRex storage backends.
- Pickle, JSON, MessagePack, and Protobuf serializers.
- Label, relationship type, property, composite, and range indexes.
- Read-only Cypher subset for indexed scans, typed traversal, filtering, ordering, limits, and chained
MATCHclauses. - Bulk and columnar ingestion helpers.
- Typed path and subgraph sampling.
See the full documentation for backend selection, indexing, Cypher syntax, ingestion, sampling, and benchmarks.
Name origin
The name GestaltDB is inspired by Gestalt psychology and the idea that the whole is something more than its parts.
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 gestaltdb-0.3.0a0.tar.gz.
File metadata
- Download URL: gestaltdb-0.3.0a0.tar.gz
- Upload date:
- Size: 59.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc31d9ece994afff3fd1b3a5b0ed8fe8962ad92b07b65e0e60c76fca38b45b84
|
|
| MD5 |
3fce17a613402197e8c2694d319ebc30
|
|
| BLAKE2b-256 |
d4883b2235ad0c61919d61a98f7839107a8bf825b29061412c7ead07c4fff77a
|
Provenance
The following attestation bundles were made for gestaltdb-0.3.0a0.tar.gz:
Publisher:
publish.yml on mylonasc/gestaltdb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gestaltdb-0.3.0a0.tar.gz -
Subject digest:
dc31d9ece994afff3fd1b3a5b0ed8fe8962ad92b07b65e0e60c76fca38b45b84 - Sigstore transparency entry: 2467728242
- Sigstore integration time:
-
Permalink:
mylonasc/gestaltdb@fd3fd56c3516da476eb29c5573fc555878be9c00 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/mylonasc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fd3fd56c3516da476eb29c5573fc555878be9c00 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file gestaltdb-0.3.0a0-py3-none-any.whl.
File metadata
- Download URL: gestaltdb-0.3.0a0-py3-none-any.whl
- Upload date:
- Size: 47.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66513b91b30036de163d8d28b8034dec953c9845ead443588bb56e06ab1396b0
|
|
| MD5 |
ddd49768ea56eb0c83418029316bb8e7
|
|
| BLAKE2b-256 |
b5846e2aa8ec503d2751d707f50abd49cd853b1dcb92fcb29cfc09f1e60bca02
|
Provenance
The following attestation bundles were made for gestaltdb-0.3.0a0-py3-none-any.whl:
Publisher:
publish.yml on mylonasc/gestaltdb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gestaltdb-0.3.0a0-py3-none-any.whl -
Subject digest:
66513b91b30036de163d8d28b8034dec953c9845ead443588bb56e06ab1396b0 - Sigstore transparency entry: 2467728522
- Sigstore integration time:
-
Permalink:
mylonasc/gestaltdb@fd3fd56c3516da476eb29c5573fc555878be9c00 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/mylonasc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fd3fd56c3516da476eb29c5573fc555878be9c00 -
Trigger Event:
workflow_dispatch
-
Statement type: