Sonic

active

by Valerian Saliou (Crisp) · since 2019 · also known as Sonic search backend

Tiny schema-less Rust search backend that returns object IDs, running in a few MB of RAM.

search enginekey-valuedatabase engineopen source (copyleft)mature

Overview

Sonic is a minimalist search backend written in Rust by Valerian Saliou for the Crisp messaging platform. Instead of storing documents, it indexes words to object IDs in RocksDB and answers queries with ID lists you then look up in your primary database, which keeps memory use to a few megabytes even for millions of objects. It speaks a simple TCP text protocol (Sonic Channel) and supports search, suggest/autocomplete and per-collection buckets. It is a good fit for fast autocomplete and basic keyword lookup, not for relevance-heavy or semantic search.

Strengths & trade-offs

Strengths

  • +Runs in a few MB of RAM
  • +Very fast word and prefix lookups for autocomplete
  • +Simple to operate: one binary plus a RocksDB directory
  • +Language-aware tokenisation and stop words for many languages

Trade-offs

  • −Returns IDs only; you must fetch documents from another store
  • −Minimal relevance controls, no facets or aggregations
  • −No replication or clustering
  • −No vector search

Great for

  • +Autocomplete and suggest
  • +Search over chat messages or helpdesk tickets
  • +Lightweight search for small servers

Think twice for

  • −Ranked relevance search
  • −Semantic or hybrid search
  • −Analytics

Capabilities

Native or official first-party support · 2 of 25 tracked

✓Full-text search
✓Durable persistence
–Transactions
–Joins
–Secondary indexes
–Vector search
–Geospatial
–JSON
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–In-memory
–Compression
–Encryption at rest
–Role-based access
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Small · ≤ 100 GB
Horizontal scaling
None
Multi-region
No
Transactions
None
Consistency
Eventual
Schema
Schemaless
Architecture
Single node, Client server
Query languages
Sonic Channel protocol

Single process; shard by collection/bucket at the app level.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

apis & protocolsTCP text protocol
client languagesJavaScript, Python, Go, Ruby, PHP, Java, Rust

Alternatives to Sonic

Compare all→
MeilisearchSearch Engine32.3

Developer-friendly Rust search engine with typo tolerance and built-in hybrid semantic search.

sonic vs meilisearch →
TypesenseSearch Engine28.8

In-memory, typo-tolerant search engine in C++ with vector, hybrid and conversational search.

sonic vs typesense →
ZincSearchSearch Engine5.1

Lightweight single-binary full-text search engine in Go with Elasticsearch-compatible ingest.

sonic vs zincsearch →
BleveSearch Engine12.2

Pure-Go full-text, geo and vector indexing library from Couchbase.

sonic vs bleve →
TantivySearch Engine22.6

Lucene-inspired full-text search library in Rust, the engine under Quickwit and ParadeDB.

sonic vs tantivy →
ExorbyteSearch Engine0.0

German error-tolerant search and matching engine, now sold for identity resolution and data matching.

sonic vs exorbyte →

Sonic FAQ

What is Sonic?

Sonic is a search engine database by Valerian Saliou (Crisp), first released in 2019. Sonic is a minimalist search backend written in Rust by Valerian Saliou for the Crisp messaging platform. Instead of storing documents, it indexes words to object IDs in RocksDB and answers queries with ID lists you then look up in your primary database, which keeps memory use to a few megabytes even for millions of objects. It speaks a simple TCP text protocol (Sonic Channel) and supports search, suggest/autocomplete and per-collection buckets. It is a good fit for fast autocomplete and basic keyword lookup, not for relevance-heavy or semantic search.

Is Sonic open source?

Yes. Sonic is open source. License: Mozilla Public License 2.0.

Does Sonic support ACID transactions?

No. Sonic does not provide ACID transactions; its consistency model is eventual.

Does Sonic scale horizontally?

Sonic does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at small scale (≤ 100 GB).

How can I run Sonic?

You can self-host it.

What is Sonic best for?

Sonic is a strong fit for autocomplete and suggest; search over chat messages or helpdesk tickets; and lightweight search for small servers. Think twice for ranked relevance search.

What are the best alternatives to Sonic?

Common alternatives to Sonic include Meilisearch, Typesense, ZincSearch, Bleve and Tantivy. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

How popular is Sonic?

Sonic ranks #326 of 844 databases on the WhichDB Score (8.3/100), and #21 among search engine databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.