Sonic: our changes to an open source project
A lightweight search backend in Rust, an alternative to Elasticsearch that runs in a few megabytes of RAM.
- Language
- Rust
- GitHub stars
- 21,357
- Project site
- crates.io/crates/sonic-server
Every change merged into Sonic
Newest first, as written in the project's repository. Each row opens the pull request with its merge date.
October 2026
3What these fixes changed
Backups through TRIGGER backup work while stores are in use, backups include FST buckets again, a channel no longer leaks a client slot after a read error, and the docs explain the name limit and the write buffer.
The bug, the fix and the lesson
A summary of our Tech news write-up: what was broken, what we changed and what it means for our own work.
The backup failed with the store open
After a PUSH the RocksDB database stays open in the pool, and TRIGGER backup tried to open it a second time and hit the held LOCK file. On a fresh server the store directories did not exist yet.
A backup from the open instance
When the store is in the pool, the backup is taken from that instance after flushing its buffers to disk. A missing directory is skipped instead of failing.
A backup taken while running must capture a consistent state rather than lock the store or read it mid-write.
It is the same rule we apply to client data backups.
Other projects with our changes: Rust
6 projects in this technology have our merged changes. The bar is the repository's stars, next to it the number of our changes. Each row leads to the project's page.
- Zed1 merged change91,587
- Sonicthis page, 5 merged changes21,357
- Pagefind1 merged change5,511
- insta1 merged change2,974
- rss1 merged change504
- configparser1 merged change87
Questions about our changes to Sonic
Where these changes come from, who merged them and whether we can fix something in your library.
Read next
More about this work and the other projects with our changes.
Using Sonic in your project?
If something in it does not work, we fix it at the source and leave a workaround until the release. We reply within an hour.