AionDB v0.3 is live: vector search becomes a first-class engine surface with pgvector-style SQL, HNSW, IVF-flat, Qdrant-style filters, and published recall/latency benchmarks. See the v0.3 vector update.

Ecosystem Integrations

Integration is pgwire first, then AionDB extensions for graph and vector workflows. Users connect through PostgreSQL tooling before learning anything AionDB-specific.

New in v0.3: the PostgreSQL ecosystem path includes a wider vector surface with pgvector-style SQL, catalog-facing vector helpers, and Qdrant-style filtered retrieval. See What's New in v0.3.

Current Public Integrations

SurfaceStatusValidation path
psqlprimary smoke-test clientSELECT 1, DDL, DML, transactions
PostgreSQL driversfeature-by-featuresimple query, prepared query, transaction errors
pgAdmin 4local compose profilemake dashboard-pgadmin
Embedded Rustdirect engine APIcompile examples and application tests
SQL dump/restoresupported v0.1 safety pathaiondb dump, aiondb restore, aiondb doctor

pgAdmin

Start AionDB, then run:

make dashboard-pgadmin

The pgAdmin profile connects over the PostgreSQL wire path. Use it to verify that ordinary SQL tools can inspect schemas and run queries without a custom client.

Driver Checklist

For every driver or ORM, record:

Native Extension Surfaces

AionDB-specific graph and vector features stay visible. They must not block basic PostgreSQL tooling. The dashboard and docs carry snippets, graph previews, and capability metadata while generic SQL clients keep working through pgwire.

Neo4j Ecosystem Target

The separate graph-compatibility goal is to be credible against a small, explicit subset of the Neo4j ecosystem.

Keep that goal narrow and evidence-based:

Priority matrix

Tool / surfacePriorityWhy it mattersSurface requiredCurrent AionDB posture
Neo4j Python driverP0Common application entry point and benchmark clientBolt, Cypher subset, session/auth correctnesspartly credible through Bolt work and in-repo bench usage; still experimental and read-only
Neo4j JavaScript driverP0Common app/runtime path for services and toolingBolt, Cypher subset, session/auth correctnessexperimental surface with reproducible smoke evidence
Neo4j Java driverP0Enterprise application path and strongest driver expectationBolt, Cypher subset, session/auth correctnessexperimental surface with reproducible smoke evidence
cypher-shellP0Best thin-client smoke for real Cypher/Bolt interoperabilityBolt, auth, session, result metadataexperimental surface with reproducible smoke evidence
Neo4j BrowserP0Strong product-perception tool; exposes result/metadata gaps quicklyBolt, graph result metadata, stable read workflowstarget surface, not yet documented as validated
Neo4j Query API-style HTTP clientsP1Useful fallback and HTTP interoperability storyHTTP Query API subset, auth, transaction endpointsexplicit wrapper exists, but official Neo4j drivers still require Bolt
LangChain / LlamaIndex graph connectorsP1Important graph-RAG adoption pathUsually Bolt or HTTP plus stable Cypher/result shapesfuture target after driver stability
APOC-sensitive workflowsP1Many Neo4j users rely on APOC-adjacent patternsProcedures, naming, result conventionsfuture target; should be documented as subset-only if attempted
Neo4j BloomP2High-visibility visual workflow, but metadata-heavyBolt, graph metadata, visual graph semanticsfuture target after Browser-level confidence
Neo4j GDS-style workflowsP2Migration pressure from analytical graph usersProcedure surface, projection/modeling conventionspartly relevant through graph procedures, but not an interoperability claim yet

What to prove first

Minimum credible ecosystem target:

  1. Neo4j Python driver
  2. Neo4j JavaScript driver
  3. Neo4j Java driver
  4. cypher-shell
  5. Neo4j Browser

If those five are not passing a narrow reproducible smoke path, do not claim broad Neo4j ecosystem compatibility.

How to phrase the claim

Good claim:

Bad claim:

The second claim is too broad without reproducible tool-level smoke results and known limitations for each named tool.

Evidence rule

Mark one of these states per tool:

Do not collapse them into one ecosystem-wide status. A read-only Bolt path that works for one driver smoke is not the same thing as Browser, Bloom, or write-capable application compatibility.

Current validation ledger

Use this table as the real compatibility ledger. It is intentionally stricter than the target matrix above.

Tool / surfaceTarget priorityCurrent stateCurrent evidence in repoNext gate before validated
Neo4j Python driverP0experimentalreproducible xtask smoke exists for the official Python driver over the read-only Bolt compatibility listener, covering RETURN, parameters, UNWIND, result keys and a Cypher error probeknown limitations note, release/CI placement, broader read corpus and explicit write-policy note
Neo4j JavaScript driverP0experimentalreproducible xtask smoke now passes against the official JavaScript driver over the read-only Bolt compatibility listener when AIONDB_NEO4J_JS_DRIVER_BASE points at a provisioned package base; the report records driver_version and the resolved basebroaden the read corpus beyond a single RETURN probe, keep a limitations note, and place the smoke in release/CI evidence
Neo4j Java driverP0experimentalreproducible xtask smoke now passes against the official Java driver over the read-only Bolt compatibility listener when AIONDB_NEO4J_JAVA_DRIVER_JAR points at a provisioned local driver jar, with sibling classpath jars resolved from the same directorybroaden the read corpus beyond a single RETURN probe, keep a limitations note, and place the smoke in release/CI evidence
cypher-shellP0experimentalreproducible xtask smoke now passes against a provisioned cypher-shell client over the read-only Bolt compatibility listener, including the CALL db.ping() compatibility preflight used by the clientbroaden the corpus beyond a single SQL probe, keep a limitations note, and place the smoke in release/CI evidence
Neo4j BrowserP0targetreproducible Browser-oriented Bolt preflight smoke now exists for the core procedure calls Browser commonly expects, executed via a provisioned cypher-shell transport; this is server-side preflight evidence, not Browser UI validationpinned Browser version, visual graph result smoke, metadata limitations note
Neo4j Query API compatibility wrapperP1experimentalreproducible xtask smoke exists for discovery, query, parameter, Cypher error and transaction probes over the HTTP wrapperversioned response contract, release/CI placement, explicit HTTP limitations note
Bolt compatibility listenerfoundationexperimentalexplicit loopback-only listener exists; repo tests cover read-only protocol semanticsnamed external tool smokes, auth/session/read workflow smoke, limitations page
LangChain / LlamaIndex graph connectorsP1targetno published connector smoke yetpinned connector versions, one reduced graph-RAG smoke, known limitations note
APOC-sensitive workflowsP1targetno published interoperability smoke yetreduced procedure/workflow matrix, subset documentation, known limitations note
Neo4j BloomP2targetno published AionDB tool smoke yetpinned Bloom version, visual graph exploration smoke, metadata limitations note
Neo4j GDS-style workflowsP2targetgraph procedures exist, but not as a Neo4j interoperability claimpinned workflow subset, result-shape checks, migration limitations note

What counts as evidence

For a tool to move from target or experimental to validated, the repository should be able to point to all of these:

  1. a pinned client or tool version, or a report artifact that records the observed driver_version / tool_version;
  2. a reproducible smoke command or script;
  3. expected result or artifact;
  4. a known limitations note;
  5. a place in CI, release smoke, or evidence docs.

Without that chain, keep the tool in target or experimental.

Suggested first wave

The smallest serious first wave is:

  1. Neo4j Python driver
  2. Neo4j JavaScript driver
  3. cypher-shell

That wave is enough to test:

Browser should come next. It exposes metadata and graph-result gaps that driver-only smokes miss.

One intermediate step exists before full Browser validation:

Current reproducible commands

Grouped P0 Neo4j ecosystem smoke:

cargo run -q -p xtask -- ecosystem-compat --group neo4j-p0 --no-history --report target/compat/neo4j-p0-smoke.json

That grouped xtask run executes the current first-wave suites in one process and writes one aggregated report.

Grouped P1 Neo4j HTTP compatibility smoke:

cargo run -q -p xtask -- ecosystem-compat --group neo4j-http-p1 --no-history --report target/compat/neo4j-http-p1-smoke.json

That grouped run currently focuses on the Query API wrapper surface and produces one aggregated report for the HTTP compatibility wave.

Grouped Neo4j Browser preflight smoke:

AIONDB_CYPHER_SHELL=/abs/path/to/cypher-shell \
  cargo run -q -p xtask -- ecosystem-compat --group neo4j-browser-p0 --no-history --report target/compat/neo4j-browser-p0-smoke.json

That grouped run is intentionally narrow:

Each Neo4j-oriented suite payload now carries, when applicable:

Official Python driver smoke:

cargo run -q -p xtask -- ecosystem-compat --suite neo4j-python-bolt --no-history --report target/compat/neo4j-python-bolt-smoke.json

That smoke currently proves:

That is enough for experimental. It is not yet enough for a broad validated claim.

Official JavaScript driver smoke harness:

cargo run -q -p xtask -- ecosystem-compat --suite neo4j-javascript-bolt --no-history --report target/compat/neo4j-javascript-bolt-smoke.json

That harness now proves the current experimental contract when a local package base is provisioned:

When the smoke passes, the JSON report records:

Even when the smoke skips, the JSON report still records:

At the current maturity level this is enough for experimental, but not yet enough for validated.

If the JavaScript driver lives outside the default compat tree, point the smoke to it with:

AIONDB_NEO4J_JS_DRIVER_BASE=/abs/path/to/node-tools \
  cargo run -q -p xtask -- ecosystem-compat --suite neo4j-javascript-bolt --no-history --report target/compat/neo4j-javascript-bolt-smoke.json

Official Java driver smoke harness:

cargo run -q -p xtask -- ecosystem-compat --suite neo4j-java-bolt --no-history --report target/compat/neo4j-java-bolt-smoke.json

That harness now proves the current experimental contract when a local driver classpath is provisioned:

When provisioned, the JSON report records both:

At the current maturity level this is enough for experimental, but not yet enough for validated.

If the jar lives elsewhere, point the smoke to it explicitly:

AIONDB_NEO4J_JAVA_DRIVER_JAR=/abs/path/to/neo4j-java-driver-<version>.jar \
  cargo run -q -p xtask -- ecosystem-compat --suite neo4j-java-bolt --no-history --report target/compat/neo4j-java-bolt-smoke.json

The Java smoke accepts a provisioned jar plus sibling runtime jars from the same directory. The current local passing setup uses:

cypher-shell Bolt smoke harness:

cargo run -q -p xtask -- ecosystem-compat --suite cypher-shell-bolt --no-history --report target/compat/cypher-shell-bolt-smoke.json

That harness now proves the current experimental contract when a local client binary is provisioned:

When provisioned, the JSON report records:

When skipped, it still records the provisioning override key.

At the current maturity level this is enough for experimental, but not yet enough for validated.

If cypher-shell is not in PATH, point the smoke to the binary directly:

AIONDB_CYPHER_SHELL=/abs/path/to/cypher-shell \
  cargo run -q -p xtask -- ecosystem-compat --suite cypher-shell-bolt --no-history --report target/compat/cypher-shell-bolt-smoke.json

Neo4j Query API HTTP smoke:

cargo run -q -p xtask -- ecosystem-compat --suite neo4j-query-api-http --no-history --report target/compat/neo4j-query-api-http-smoke.json

That smoke currently proves:

The JSON report also captures the discovery contract currently exposed by the wrapper:

Neo4j Browser-oriented Bolt preflight smoke:

AIONDB_CYPHER_SHELL=/abs/path/to/cypher-shell \
  cargo run -q -p xtask -- ecosystem-compat --suite neo4j-browser-preflight-bolt --no-history --report target/compat/neo4j-browser-preflight-bolt-smoke.json

That smoke currently proves the server-side compatibility preflight Browser is likely to need:

The report is intentionally marked as Browser target, not experimental, because it is still:

Current Bolt compatibility limitations

The current Neo4j-oriented Bolt surface should still be described as experimental and read-only.

Known limitations in the current compatibility layer:

That is why the current Python driver smoke is strong enough for experimental, but still not enough for a broad Neo4j interoperability claim.

Current Query API compatibility limitations

The current Neo4j-oriented Query API wrapper should also still be described as experimental.

Known limitations in the current HTTP wrapper:

Claiming Support

A connection that works once is not support. Mark a surface supported only when the application path has a reproducible smoke test and a known limitations section.