Skip to main content

IronGraph for Python

Python access to a GPU-first temporal graph database with built-in streaming and queues.

Work with graph relationships, text document and vector search, temporal property history, graph analytics, and built-in Streams and Queues. The irongraph package provides native embedded access and remote Query API/Bolt clients with the same Cypher language. IronGraph is open-source software released under the Apache License 2.0.

Database capabilities

Capability What you can do
Graph queries and analytics Match relationships and paths with Cypher; run shortest paths, PageRank, connected components, and community detection.
Temporal properties and analysis Retain property history, read values with AT TIME, inspect samples with HISTORY, and aggregate with time windows and maintained rollups.
Text documents and search Store the full text of articles, notes, manuals, and other written content on graph nodes; search that text with text and vector indexes and automatic local embeddings.
Built-in Kafka-compatible Streams Produce and consume events through supported Kafka clients; manage topics, partitions, retention, and consumer-lag monitoring.
Built-in AMQP-compatible Queues Use classic and stream queues, direct/fanout/topic exchanges, bindings, and retention with supported AMQP clients.

Cypher handles graph operations, temporal analysis, search, and stream/queue administration. Message producers and consumers use the supported Kafka or AMQP protocols through the instance's configured listeners. The SDK query interface does not replace those protocol clients.

Explicit projects and the OBSERVED, KNOWLEDGE, and WORKSPACE layers organize data. Indexes and unique constraints, transactions, asynchronous write-ahead logging, recovery, and periodic snapshots are part of the database.

The standalone instance serves its web console at http://127.0.0.1:18484/web/ by default and also supports local MCP access. Start the official standalone distribution before opening that address. Opening an embedded database through Python, Node.js, or Rust does not start a web server or expose the console. For a configured remote instance, use its HTTPS address followed by /web/, with the required browser-managed client certificate.

Temporal reads apply to declared properties within their retention window. Graph topology and ordinary properties are read in their current state.

Install

You need Python 3.9 or later and an official wheel. Native release targets are macOS 15+ ARM64 and Linux with glibc 2.28+ on ARM64 or AMD64. These are package build baselines; check your release's qualification results before deploying. After configuring the official package source supplied with your release:

python -m pip install --only-binary=:all: irongraph

The matching wheel must be published to that source. Installation uses a compiled database binary and does not require a Rust compiler.

Store and read a text document

Use a writable directory exclusively owned by your application process. Default startup downloads and verifies the local embedding model if absent, then loads and warms it. Allow network access and sufficient disk space on first use.

from irongraph import EmbeddedDatabase

with EmbeddedDatabase("./irongraph-data", device="cpu") as database:
    database.query("CREATE PROJECT IF NOT EXISTS notes")
    result = database.query(
        """USE notes
        MERGE (document:Document {id: $id})
        SET document.body = $body
        RETURN document.body AS body""",
        parameters={"id": "welcome", "body": "Graphs connect facts."},
    )
    print(result["rows"][0][0]["value"])

Expected output: Graphs connect facts. The context manager closes the database and the text document persists. Run the example again to update the same text document.

The example selects CPU across native release targets and keeps automatic text embedding enabled. Select device="metal" on a supported Mac to use Metal acceleration.

Next, declare an embedding index on the text document body and use MATCH … SEARCH … RETURN to combine vector retrieval with graph filters. The same query method supports text document updates, indexes, temporal data, graph algorithms, and topic, queue, exchange, and binding administration. Text documents are ordinary graph nodes; their complete text remains on the owning node.

Operate the database

Choose projects explicitly with USE or project_id; there is no implicit default. Each project has OBSERVED, KNOWLEDGE, and WORKSPACE layers for source facts, curated facts, and working data. Transactions, asynchronous write-ahead logging, recovery, and snapshots apply to embedded data as they do in a standalone instance.

One process uses one execution device and one active embedded instance. CPU is the reference backend, Metal is the primary local accelerator, and CUDA requires a CUDA-enabled release. GPU admission rejects project graphs and derived indexes that do not fit in device memory. Keep the database open for the application's lifetime. IronGraph embeds text locally and does not run generative language models.

For remote access, use Client.api_mtls or Client.bolt_mtls with a client certificate, private-key path, and trusted certificate authority. Plain connections are loopback-only; remote access requires mutual TLS and a credential authorized for the project and operations.

License

IronGraph is licensed under the Apache License 2.0. Third-party components and the embedding model retain their own terms.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

irongraph-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl (37.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ x86-64

irongraph-0.1.0-cp39-abi3-manylinux_2_28_aarch64.whl (36.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ ARM64

irongraph-0.1.0-cp39-abi3-macosx_15_0_arm64.whl (38.7 MB view details)

Uploaded CPython 3.9+macOS 15.0+ ARM64

File details

Details for the file irongraph-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for irongraph-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4074b281645fcfb89fe6667b27656a1491eba210645227c39fe31e81fb01c89b
MD5 0e6cd80793439154f0283bff59d9b417
BLAKE2b-256 8d03aa34f03448f50719092430ffbffb320d3125630f78479556fc7b36f9a4df

See more details on using hashes here.

File details

Details for the file irongraph-0.1.0-cp39-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for irongraph-0.1.0-cp39-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2df8b0943c83f644d86efb2c0365e67b84822f3900f7896c311106f0de71aebb
MD5 f22fde3e494fbf7328eb0e7b423663d0
BLAKE2b-256 37fddedfeb74ae694ea8a629a8b7f903e79ccb96ec4443b17ff1e6b0232594f9

See more details on using hashes here.

File details

Details for the file irongraph-0.1.0-cp39-abi3-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for irongraph-0.1.0-cp39-abi3-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0c6fd046ac71e39d8132fe0df1d72464f929d7ac16f285acd716ca5ac3332d05
MD5 81688de55275eb3d81dfa6e0d1875b3e
BLAKE2b-256 7676d984b671e963e145032b1c2e751591127ed7cc39c056a9590a46e8285a6a

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

3 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