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 INDEXand query it withdb.index.vector.queryNodes. - Full-text index - BM25 ranking with phrase, prefix, and fuzzy query syntax.
- Text and point indexes - the text index speeds up
CONTAINSandENDS 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
.tvmodelfiles, 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.