The engine these notes have followed since HyperCrux 0.2.0 has shipped. HyperCrux 0.3.0-beta.1, out on 15 October, is the first release of the Beta, written in Go with no SQLite and no C underneath. It keeps 0.x’s Go API and command, and it’s a pre-release on GitHub for Linux on x86-64 and ARM64. 0.2.0, the SQLite version, stays the stable line, with builds for macOS and Windows too.
In the release’s benchmarks, with both engines on the same two-core machine, the Beta’s vector searches came out 5 to 10 times as fast as 0.x’s, and reads by key and walks along links about 6 to 8 times. Opening costs more, since each process reads the whole file into memory: 323 ms for 100,000 records with vectors, where 0.x needs under a millisecond.
Before the release, a long final run on both architectures caught all 261 bugs planted in the code on purpose and matched 0.x over a million random sequences of operations. How the Beta was tested goes through the power-cut tests, and moving from 0.x shows how a database comes across in one export and a Go program changes one import path. The Beta runs on Linux only and keeps the whole database in memory, so bigger data stays with 0.x.