Performance

Benchmarked on 309,236 production records with 67 fields including nested objects, arrays, and geo coordinates. CPU-only. Every number comes from reproducible, automated benchmarks on identical hardware against Typesense v30.1 and Quickwit 0.8.2.

9.5x

Geometric mean (single-threaded)

Across 15 query patterns vs Typesense v30.1. 7.4x vs Quickwit 0.8.2.

7.1x

Geometric mean (24 clients)

24 concurrent clients, 20 iterations per pattern

7.8x

Ingestion speedup

Torque TCP binary 69K docs/s vs Typesense JSONL 8.9K docs/s

Why It's Fast

Pure In-Memory

Indexes live entirely in RAM. No RocksDB write-amplification bottleneck during ingestion, no disk reads during search. Persistence saves to disk in the background without affecting query speed.

Roaring Bitmaps

All filter operations use compressed roaring bitmaps. Boolean intersections, unions, and differences run in microseconds even on millions of documents.

CUDA Compute Kernels

Seven CUDA kernels offload scoring, filtering, vector distance, and facet counting to the GPU. The benchmarks shown are CPU-only - GPU adds further acceleration on top.

Built in Rust

It hits full speed on the very first request, so there's no warm-up to wait out. And it never stops to clean up after itself the way other engines do, so you don't get the odd slow search in the middle of a fast run.

Binary TCP Ingestion

Custom binary protocol streams documents over persistent TCP connections. Eliminates HTTP and JSON parsing overhead for bulk data loading.

Atomic Index Swap

Parallel index builds via rayon with per-collection atomic pointer swap. Queries are never blocked during rebuilds - zero downtime, zero partial state.

Benchmark Results

All three engines ran the same 15 search queries over HTTP on the same machine, from one client up to 24. Latency is p50 (lower is better); each bar shows speed relative to the fastest engine in the row, and the multiplier is how many times faster Torque is.

Category
Parallel clients
TorqueTypesenseQuickwit
Text Search
Torque
1.99 msfastest
Typesense
2.77 ms1.4x
Quickwit
3.17 ms1.6x
Multi-Term Text
Torque
2.02 msfastest
Typesense
2.96 ms1.5x
Quickwit
3.74 ms1.9x
Prefix Search
Torque
0.42 msfastest
Typesense
1.08 ms2.6x
Quickwit
7.27 ms17x
Typo Search
Torque
1.08 msfastest
Typesense
2.32 ms2.1x
Quickwit
not supported
All 15 queries - 1 clientTorque wins 15/15 vs Typesense - 9.5x geomeanTorque wins 12/12 comparable vs Quickwit - 7.4x geomean

Result counts differ between engines because of different stemming and tokenization, so this compares speed, not identical result sets - hover a row to see each engine's hit count. Quickwit (Elasticsearch-compatible) does not run prefix, typo, nested-filter or geo-sort queries; those are marked not supported. Full hardware and dataset details are in the Test Environment below.

What Sets Torque Apart

GPU Acceleration

CUDA compute kernels for scoring, filtering, vector search, and faceting. No other search engine in this category offers GPU acceleration. All benchmark numbers shown are CPU-only.

Binary TCP Ingestion

Custom high-performance binary protocol for streaming documents. Eliminates HTTP and JSON parsing overhead entirely. No other search engine in this category offers a binary ingest protocol.

Torque Studio

Built-in web IDE with Monaco query editor, collection browser, and schema inspector. Embedded in the binary - no separate install, no third-party tools needed.

Test Environment

Hardware

Intel Core i7-12700KF (12 cores, 20 threads, P-cores 4.9 GHz), 64 GB DDR5 RAM, Ubuntu 24.04 LTS, kernel 6.17. CPU-only - GPU acceleration was disabled for a fair baseline comparison.

Dataset

309,236 production records. 67 fields with nested objects, arrays, and geo coordinates. 20 iterations per query, 5 warmup rounds. Identical documents on all engines.

Engines

Torque 0.6.0 vs Typesense v30.1 and Quickwit 0.8.2, all in the same session. Default configurations on localhost, identical queries via REST API. Document counts validated before benchmarking. 20 iterations with 5 warmup rounds.

Run your own benchmark

Try Torque against your own data and see the results firsthand.