← Back to Blog

Traverse 0.8: Full GQL Support, APOC Compatibility, and ML Pipelines

Today we're releasing Traverse 0.8, our in-memory graph database built in Rust. It's our biggest release so far: the full ISO GQL standard alongside openCypher, a built-in APOC compatibility layer, vector and full-text search, and machine learning pipelines you drive straight from Cypher. And the whole engine now runs in a browser tab - you can try it right now at traverse.truespar.com, no install and no server.

Everything here is on top of the 36 graph algorithms already built into Traverse. There are no breaking changes: existing queries, drivers, and SDK calls keep working exactly as before.

GQL, alongside Cypher

Traverse 0.8 has 100% conformance with ISO/IEC 39075, the GQL standard - the first international standard query language since SQL. GQL runs side by side with openCypher, and you pick the dialect per query, in Studio or over any protocol.

Conformance covers the whole standard: quantified path patterns, path search prefixes, composed queries with NEXT and WHEN, catalog statements, typed temporal literals, and the standard error envelope. GQL is available in every language binding and HTTP client, and - new in 0.8 - in the WebAssembly build, so the Studio dialect picker behaves the same in the browser as it does against a server.

Cypher grew a lot this release too, picking up the Cypher 25 feature set: quantified path patterns with per-iteration group variables, a SEARCH clause for vector similarity inside a MATCH, COLLECT { ... } subqueries, CALL { ... } IN TRANSACTIONS, FOREACH, dynamic labels, relationship types and property names in both reads and writes, and LOAD CSV with dynamic columns. See the GQL reference for the full picture.

APOC, built in

The complete APOC core catalog now ships inside the binary: 246 functions and 190 procedures. There's no plugin to install and no allowlist to configure - it all works out of the box.

  • Loaders: apoc.load.json / jsonParams / csv / xml / jdbc (SQLite and PostgreSQL)
  • Export and import: JSON, CSV, GraphML, Cypher script, and Arrow, in both directions
  • Triggers with a full graph event system, and background jobs through the apoc.periodic.* scheduler
  • Refactoring, schema assertions, conditional execution, path expanders, aggregates, and the apoc.meta.* and spatial helpers

If you're moving from Neo4j, the queries and procedures you already rely on come along with you. The APOC reference lists everything that's supported.

Vector index and full-text search

Traverse 0.8 adds a set of new indexes, so search and similarity run natively inside the database instead of in a separate service:

  • Vector index - HNSW with SIMD-accelerated distance kernels and int8 quantization. Create it with CREATE VECTOR INDEX and query it with db.index.vector.queryNodes.
  • Full-text index - BM25 ranking with phrase, prefix, and fuzzy query syntax.
  • Text and point indexes - the text index speeds up CONTAINS and ENDS WITH; the point index accelerates spatial queries transparently.

There are also relationship-property and composite indexes, planner hints, and a full set of constraints (node key, uniqueness, existence, and type). Every index and constraint is stored in the database file and rebuilt correctly after a crash.

Machine learning pipelines

You can now train node-classification models entirely from Cypher, with the training running as an asynchronous job:

  • Graph neural network candidates - GCN and GraphSAGE pipelines, plus R-GCN, GAT, and GraphMAE self-supervised pretraining
  • Training on GPU (CUDA) or CPU, with hyperparameter auto-tuning and stratified k-fold cross-validation
  • Explainability built in: PGExplainer, counterfactual explanations, and a subgraph audit mode
  • Models persist in the database as .tvmodel files, and predictions write back as node properties

Studio has a panel for the whole pipeline, and there's in-browser inference through the new @truespar/traverse-ml-wasm package, running on CPU or WebGPU. The ML pipelines guide walks through a full example.

Graph algorithms

All of this sits on top of the 36 graph algorithms already in Traverse - centrality, community detection, paths, similarity, and embeddings, callable from Cypher. Version 0.8 improves gds.* compatibility with the named-projection graph catalog, mutate mode, and link-prediction functions, and makes the algorithm library substantially faster through broader parallelization.

Runs in the browser

The full engine compiles to WebAssembly and runs in a browser tab, with databases persisted locally. As of 0.8 that includes GQL and machine-learning inference - the same query languages and models you'd run on a server, with nothing to install.

Try it right now at traverse.truespar.com, or embed the engine in your own app with the npm package. See the browser mode docs for details.

Durability and performance

Write-ahead logging is now available as an opt-in. Set TRAVERSE_DURABILITY=wal and every committed write survives a hard crash and replays on the next start, while group commit keeps throughput up under concurrency. The default is still snapshot-on-shutdown, unchanged from 0.7.

Query execution got faster across the board this release - smarter plan caching on the write path, index seeks from runtime expressions, pattern-comprehension and UNWIND optimizations, and planner improvements like predicate push-down and EXISTS short-circuiting - alongside the usual round of correctness fixes.

Upgrade

0.8 is a drop-in upgrade with no breaking changes. Existing Cypher queries, Bolt connections, embedded SDK calls, and HTTP requests all keep working, and durability stays snapshot-only unless you turn on write-ahead logging.

Download the latest release from the Traverse product page or follow the getting started guide. If you'd like a demo, reach out.