Skip to content

Graphus v0.0.4

Choose a tag to compare

@FlavioCFOliveira FlavioCFOliveira released this 30 Jun 21:38

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 TCK3914 / 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, and contains-system-updates.
  • Query-type classification. Each statement is classified as r (read), w (write),
    rw (read-write), or s (schema / admin), matching the Bolt/Cypher query-type contract.
  • Schema and admin DDL accounted for. Index, constraint, and other schema/administrative
    statements report query type s together 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 query type (r read, w write, rw
    read-write, s schema/admin) and the Neo4j-compatible stats counters (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 type r with no counters, and schema DDL reports
    type s with 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 :latest

See 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).