Rust · Highlights

Highlights

8.0.0-rc.1 · b1f866ab

This is the most fully featured high-level SDK after Python. It is a good fit if you want most of the native breadth without dropping into a manual FFI layer.

Trait-first scalar API. Type::operation(&a, &b) stays compact and predictable. Allocator-aware tensors. Tensor, DotsPackedMatrix, and MaxSimPackedMatrix can use custom allocators. Storage-first low precision. f16, bf16, fp8, fp6, and packed integer wrappers are first-class types. Matrix kernels with explicit contracts. Packed and symmetric kernels validate shapes and row contiguity. No hidden thread pool. Parallel helpers remain host-controlled. Fork Union support. The parallel feature is the intended native orchestration layer.

§ Ecosystem Comparison

FeatureNumKongnalgebrandarray
Operation familiesdots, distances, binary, probability, geospatial, curved, shapes, sparse, MaxSim, elementwise, reductions, cast, triglinear algebra, decompositionsgeneral n-dimensional arithmetic
PrecisionBFloat16 through sub-byte; automatic widening; Kahan summation; 0 ULP in Float32/Float64Float32/Float64 only; no widening; standard accuracyFloat32/Float64 only; no widening; standard accuracy
Runtime SIMD dispatchper call, the highest capability the CPU runs and the build holds, across x86, Arm, RISC-Vnonenone
Packed matrix, GEMM-likepack once, reuse across query batchesstandard matmul; no persistent packingdot for matmul; no persistent packing
Symmetric kernels, SYRK-likeskip duplicate pairs, up to 2x speedup for self-distanceno duplicate-pair skippingno duplicate-pair skipping
Memory modelCaller-owned; Tensor/DotsPackedMatrix support custom allocatorsHeap-allocated matrices; custom storage traitHeap-allocated; no custom allocator support
Host-side parallelismrow-range partitioning via reusable ThreadPool; no hidden threadsRayon-based parallelism possibleRayon-based parallelism possible

NumKong validates f16 and bf16 interop against the half crate in its own test suite. That lets you move between ecosystem-standard half types and NumKong’s kernel-facing wrappers without ambiguity.