HydraDB
Status: experimental (shown with an Experimental badge). Level: 2 · Versions tested: ghcr.io/hydra-db/hydradb:latest (image built 2026-09-29, HydraDB 0.1.x logs, HTTP query API v1), single node, plaintext. Other versions, clusters and TLS deployments are not tested.
HydraDB is a graph database on object storage that speaks OpenCypher over Bolt and over an HTTP query API (github.com/hydra-db/hydradb, AGPL-3.0). Not to be confused with Hydra, the Postgres-based warehouse.
Authentication and transport
Bearer token over the HTTP query API (default port 8443). The Bolt port is not used. Besides host, port and token the form asks for the graph (default) and the cell id (cell-0): HydraDB cannot list cells, and a wrong one answers an opaque HTTP 500 (the driver adds a hint). A namespace header is optional. Deployed servers require TLS (Use TLS); plain HTTP is for local development.
Capabilities
Cypher editor, positional parameters bound as $p1, $p2…, results streamed as NDJSON (rows reach the grid while the server is still producing them), cancel (aborts the request and calls the server's cancel endpoint), maxRows. Not editable in the grid. No transactions.
Type notes
Cells are typed by the server: vertex_id and integer keep full 64-bit precision (exact integers are quoted before parsing), floats, booleans, strings and nulls map directly; lists are shown as JSON; paths are shown as the server encodes them.
Limits (honest)
- The tree only shows the labels you list in the connection ("Labels to show in the tree"). HydraDB has no
CALL db.labels(), so labels, properties and relationship types cannot be discovered. Opening a label runsMATCH (n:Label) RETURN n.id AS id; write your own query to see other properties. - HydraDB accepts a subset of OpenCypher: no
RETURN n, noRETURN *, no arithmetic inRETURN, writes only as edge patterns orUNWINDbatches, and more (see the server'sUSING-HYDRADB.md). The driver passes your statement through and shows the server's message. - Existence checks on bare ids are unreliable by design of the server (an id-anchored
MATCHreturns a phantom row): anchor on a label. - No
EXPLAINviewer and no ER/design tools.
Read-only enforcement
Client-side: the default-deny Cypher classifier rejects anything not recognised as a read (MERGE, CREATE, SET, DELETE, unknown procedures, several statements). algo.SPpaths, algo.SSpaths and algo.MSpaths count as reads. For a server-side guarantee use a token with no write rights, if your deployment has one.
External tools
none
Driver license
none (built on node:http)
Running the integration tests
docker compose -f test/compose/docker-compose.yml up -d hydradb then pnpm --filter @rizomadb/driver-hydradb test (HTTP port 18443, override with RZ_HYDRADB_PORT; the test token is in test/compose/hydradb-auth-token). CI runs it in the engines-extra job, which starts the engine from the compose file (the image needs a token file, so it cannot be a job service).