Skip to main content

Okto Grafx

Embedded, local-first graph database for Python, with concurrent readers and writers, snapshot isolation, WAL-backed durability, verification and fail-closed recovery. No database server is required. The core has no third-party runtime dependencies.

Source version: 0.0.4, pre-alpha. This describes the checked-out source, not a claim that 0.0.4 is already published on PyPI. API and persistent-format compatibility must be checked before upgrading; see operations.

Install and start

Python 3.11–3.13; local Windows and POSIX filesystems.

pip install "okto-grafx[accel]"

This installs the release available from your configured package index. For this source revision, use pip install -e ".[dev,accel]" in a checkout. okto-grafx is the distribution name; okto_grafx is the Python import; oktografx is the CLI. The [accel] extra adds native CRC-32C and NumPy. NumPy vector math/page codec require explicit selectors; installing the extra does not select them automatically.

from okto_grafx import connect

with connect(":memory:") as db:
    with db.begin("write") as txn:
        txn.execute("CREATE NODE TABLE Person(id INT64, name STRING, PRIMARY KEY(id))")
        txn.execute("CREATE (:Person {id: $id, name: $name})", {"id": 1, "name": "Ada"})
    result = db.execute("MATCH (p:Person) RETURN p.id, p.name")
    assert result.rows == ((1, "Ada"),)

Use a directory instead of :memory: for persistent data. db.execute() is a read-only autocommit door; writes use explicit transactions. A normal transaction context exit commits, and an exceptional exit rolls back. See the integration tutorial for relationships and durable reopen.

What is available

Capability Consumer documentation
Multi-process/multi-thread access, snapshot transactions, optimistic conflicts and writer fencing Concurrency and recovery
Typed nodes/relationships, parameters, writes, traversal, aggregates, limited OPTIONAL MATCH and UNION Supported query language
Atomic executemany, streaming results and snapshot-bound physical scan cursors Integration recipes
Automatic PK/endpoint/identity indexes; custom hash/ordered indexes; foreground rebuild/rehash Indexes and vectors
Exact and approximate vector search with declared space, metric and precision Indexes and vectors
Query/transaction budgets, optional spill, acceleration and metrics All configuration fields
Verification, evidence ledger/quarantine, recovery/checkpoint, manual vacuum and WAL compression Operations
Embedded Python, machine-readable CLI, configurable ports/adapters API, CLI, ports

Concurrent transactions do not imply lock-free commits: publication has an exclusive section, different rows can conflict on physical pages, and operations may wait or time out. Recovery repairs only states that the WAL and durable identity prove safe; it does not silently rebuild or discard damaged authoritative data.

There is no native async/HTTP/MCP server, SQLAlchemy backend, public time-travel API or general hot-backup/restore API in this release surface. Proposed capabilities are explicitly separated in the roadmap.

Current measured performance

Latest recorded real-consumer sample: September 8, 2026, Grafx 0.0.4@fa8f188 with [accel], Pulse 0.3.3, Windows/Python 3.13. This is not a benchmark of the later GX-CAP-1 recovery checkpoint or a universal latency promise.

Operation / workload Observed time Boundary
Consolidation commit, 11 new nodes / 22 edges 10.726 s Full Pulse MCP call, not native commit only
Global delivery of that commit 54.952 s Outbox creation to processed ACK; includes scheduling/verification
Exact readback of the 11 nodes 0.376 s MCP call; executor 91.1 ms
Readback of 11 judgement links / 11 source links 0.408 / 0.182 s Separate MCP calls
Exact-title natural retrieval 2.709 s One query; not broad-query recall/latency

These are one-sample observations, not p50/p99 statistics or an identical-input comparison with Ladybug. Latest full KG UI cold/warm latency at the current source checkpoint is not measured. Native component measurements and their limitations are in performance; no marginal timing gate blocks delivery.

Documentation

Start with the documentation index. It separates tutorials, consumer references, operational procedures, implementation specifications and historical evidence; integrating the library does not require reading the latter.

Deployment and license

The host application owns authorization, input policy and filesystem permissions. Do not place live database files on cloud-sync/network filesystems or replace them while participants are using them. OpenMetrics has no authentication/TLS; remote binding requires explicit consent. See operational safety.

Licensed under Elastic License 2.0 with the SaaS/Branding Addendum. Check those terms before offering a hosted service.

Metadata

Release files for okto-grafx 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for okto-grafx 0.0.4
File Size Uploaded
okto_grafx-0.0.4.tar.gz 1.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for okto-grafx 0.0.4
File Interpreter ABI Platform
okto_grafx-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 2.6 MB

Release files / okto_grafx-0.0.4.tar.gz

Download URL okto_grafx-0.0.4.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
db6a24a04a6b4e818d33b313f50fa4a33c0519de7796b1b4ac9386c6c7273bfb
BLAKE2b-256 checksum
How to use checksums
a0078532e85f1d2e3349332331734e05471d332ca8c578e1cd6af945f8866bd3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.1

Release files / okto_grafx-0.0.4-py3-none-any.whl

Download URL okto_grafx-0.0.4-py3-none-any.whl
Size 1.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
bb44971934a5cadb77e1621e2ad202451a7450f277240ec86e55562aa763a532
BLAKE2b-256 checksum
How to use checksums
c760e91ada84aaa2917f803ec8d60f8e162f7b9e090468fd29594858a3eba114
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.1

Release history Release notifications | RSS feed

0.0.7

2 release files

0.0.6

2 release files

0.0.5

1 release file

This release

0.0.4 This release

2 release files

0.0.3

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page