Tachyon vs. Typesense
How Tachyon and Typesense compare on architecture, memory, licensing, and query latency — with a fully-disclosed preliminary benchmark.
Tachyon and Typesense solve the same problem — fast, typo-tolerant, self-hosted application search, without running a JVM cluster — and are the closest architectural match on this list. If you're choosing between the two, the real differences are memory model, license, and how much surface area each API exposes.
At a glance
| Tachyon | Typesense | |
|---|---|---|
| Language | Rust | C++ |
| License | Apache-2.0 | GPL-3.0 |
| Distribution | Single binary / Docker image | Single binary / Docker image |
| Index storage | Memory-mapped on-disk segments | Primarily in-memory (RAM-resident) |
| Relevance | BM25 | Custom (field-weighted, typo-aware) |
| Typo tolerance | Damerau-Levenshtein, built in | Built in |
| Faceting | Yes | Yes |
| Filtering | Yes, boolean expression language | Yes |
| Sorting | Multi-clause, numeric + relevance | Multi-clause |
| Vector / hybrid search | No — see Roadmap | Yes |
| Geo search | No — see Roadmap | Yes |
| Clustering / replication | No — see Roadmap | Yes (Raft-based) |
| Managed cloud offering | No | Typesense Cloud |
| Client SDKs | TypeScript, Python, C# | Many, incl. official + community |
Memory model
This is the largest architectural difference. Typesense is built to hold its index in RAM for speed, which means memory usage scales with corpus size directly — a much bigger dataset means a much bigger instance. Tachyon's segments are memory-mapped rather than fully resident: postings, field values, and document bodies are read lazily and decoded only for what a query actually touches, so working-set memory tracks how much of the corpus is hot, not total corpus size. See Persistence for how that's implemented.
The practical effect: for large, mostly-cold corpora (archives, long-tail catalogs), Tachyon is likely to run comfortably on hardware Typesense would outgrow. For small, hot, latency-critical corpora, Typesense's RAM-resident design has less to lose from paging in — the tradeoff mostly matters at scale.
Feature surface
Typesense currently has a materially broader feature set: vector and hybrid search, geo search, and built-in clustering/replication are all shipped. Tachyon does not have any of these yet — they're tracked on the Roadmap, not silently missing. If you need any of them today, Typesense is the better fit; Tachyon focuses on lexical search done well rather than a broader surface done partially.
License
Typesense is GPL-3.0. Tachyon is Apache-2.0, which imposes no copyleft obligations on how you use or ship it. This matters most if you're embedding either engine inside a product you distribute rather than only running it as a service you operate.
Preliminary benchmark
We ran a single, fully-disclosed comparison — one machine, one sitting, no concurrency sweep, informal by our own standard until superseded by the reproducible benchmark suite — of Tachyon against Typesense 30.2 across 1M and 5M synthetic product-catalog documents. Full methodology, hardware, dataset generation, and every caveat that limits how far the numbers generalize: see Benchmarks.
Treat every number in that comparison as directional. It's one run, on a laptop, against default configuration for both engines — not the reproducible suite this page will eventually link to instead.
Choose Typesense when
- You need vector/hybrid search, geo queries, or built-in replication today.
- Your corpus is small enough that RAM-resident indexing is a non-issue, and you want the broadest, most mature client SDK ecosystem.
- You want a managed cloud option from the vendor itself.
Choose Tachyon when
- Your corpus is large or mostly cold, and you'd rather not size an instance for "everything in RAM at once."
- You want an Apache-2.0 license with no copyleft obligations.
- You want the smallest possible operational surface: one binary, one REST API, Prometheus metrics, nothing else.
Concept mapping
| Typesense | Tachyon |
|---|---|
| Collection | Collection |
| Document | Document |
Schema field types (string, int32, …) | Field types (text, keyword, int, float, bool, date) |
facet: true | facet: true |
| API key | --admin-key / --search-key |
See Collections and Documents for Tachyon's exact schema and indexing shape.