Graphus v0.0.4
Graphus v0.0.4
Version: 0.0.4
Date: 2026-06-30
Tag: v0.0.4
Summary
Graphus v0.0.4 is a small, focused conformance release of Graphus, the Label
Property Graph (LPG) database server written in Rust for extreme load and concurrency. It
delivers a single user-visible change — a correct, populated query result summary on
both the Bolt and REST interfaces — and introduces no breaking changes: the public
Cypher, Bolt, and REST contracts are unchanged, so v0.0.4 is a drop-in upgrade from
v0.0.3.
Before this release, every query returned an empty result summary: zero update counters
and a null query type, even when the statement created nodes, set properties, or ran schema
DDL. That gap broke the Bolt/Cypher contract that Neo4j drivers and tooling rely on
(summary().counters, summary().query_type). v0.0.4 closes it.
Throughout, the four inviolable guarantees held:
- 100% ACID — full transactional reliability under power loss, faults, and crashes.
- 100% openCypher TCK — 3914 / 3914 scenarios passing.
- 100% Bolt protocol — byte-for-byte interoperability with the Neo4j driver ecosystem.
- 100% PackStream — exact wire-level serialization.
Highlights
- Query result summary, populated at last. Both the Bolt and REST interfaces now emit the
per-statement result summary that was previously always empty. The trailing summary carries
the query type and the Neo4j-compatible statistics counters, so a write that
persisted data now reports exactly what it changed. - Neo4j-compatible counters. The summary exposes the full Neo4j operation-count model with
kebab-case keys, present only when non-empty:nodes-created/nodes-deleted,
relationships-created/relationships-deleted,properties-set,labels-added/
labels-removed,indexes-added/indexes-removed,constraints-added/
constraints-removed,system-updates,contains-updates, andcontains-system-updates. - Query-type classification. Each statement is classified as
r(read),w(write),
rw(read-write), ors(schema / admin), matching the Bolt/Cypher query-type contract. - Schema and admin DDL accounted for. Index, constraint, and other schema/administrative
statements report query typestogether with their schema and system update counters,
rather than presenting as no-ops.
Fixed
- Query result summary (side-effect counters + query type). Both the Bolt and REST
interfaces now populate the per-statement result summary that was previously always empty —
every query reported zero update counters and a null query type even though writes
persisted, breaking conformance with the Bolt/Cypher contract and the Neo4j driver
ecosystem. The trailing summary now carries the querytype(rread,wwrite,rw
read-write,sschema/admin) and the Neo4j-compatiblestatscounters (nodes-created/
-deleted,relationships-created/-deleted,properties-set,labels-added/
-removed,indexes-added/-removed,constraints-added/-removed,system-updates,
contains-updates,contains-system-updates), present only when non-empty. Counters follow
Neo4j's operation-count model and use kebab-case keys; over REST they are plain JSON numbers
(for example"nodes-created": 1), matching the Neo4j HTTP API.
Verification
This release was validated empirically; no functional test reported an error.
- End-to-end interface check. Verified against a locally-built server with the official
Neo4j driver over Bolt and over the REST API: a write statement now reports its
counters and query type, a read reports typerwith no counters, and schema DDL reports
typeswith schema/system counters. - Regression coverage. New and extended tests assert the wire-level summary so the field
can never silently regress to empty again — counter and query-type unit tests in the Cypher
engine, a record-store graph counter suite, a database admin-surface DDL summary suite, and a
REST knowledge-graph summary assertion. - Conformance gates intact. The openCypher TCK remains at 3914 / 3914 (100%), and the
Bolt, PackStream, and ACID guarantees are unchanged.
Compatibility
v0.0.4 is a drop-in upgrade from v0.0.3 — no public Cypher, Bolt, or REST API contract
changed. The result summary moves from always empty to correctly populated; clients that
ignored the summary are unaffected, and clients that read it now receive accurate, Neo4j-
compatible data. The four inviolable guarantees (ACID, openCypher TCK, Bolt, PackStream)
remain at 100%.
Upgrading
# Docker Hub (multi-arch: linux/amd64 + linux/arm64)
docker pull flaviocfo/graphus:v0.0.4 # or :latestSee the repository docs/ for first-run instructions (docs/getting-started.md) and for how
each interface now reports the query result summary (docs/bolt.md, docs/rest-api.md).