lucivy v2.0.0
Major release: SFX-only engine, cross-token search, 5 bindings, distributed search, delta sync.
Highlights
- SFX-only engine — all queries route through the Suffix FST. No legacy code paths, no fallbacks.
- Cross-token matching — search for
ror::lucivyerand findError::LucivyError. - Correct BM25 cross-shard — identical scores whether 1 shard or 4 (diff=0.0000).
- Distributed search —
export_stats/merge_stats/search_with_global_statsfor multi-machine BM25. - Incremental sync — LUCIDS sharded delta export/apply. Only changed segments transferred.
- 5 bindings — Python, Node.js, C++, WASM (emscripten), Rust. All E2E tested.
- luciole — new standalone actor runtime crate (DAG execution, streaming pipelines, WaitGraph).
Install
| Language | Install | Package |
|---|---|---|
| Python | pip install lucivy |
PyPI |
| Node.js | npm install lucivy |
npm |
| WASM | npm install lucivy-wasm |
npm |
| Rust | cargo add lucivy-core |
crates.io |
Try it
Live playground — runs entirely in your browser via WASM. Clone any GitHub repo and search it instantly.
Bug fixes
- startsWith prefix match fixed (
falling_walk→prefix_walk_si0) - BM25 crash on multi-field queries (prescan key now includes field_id)
- Fuzzy 0 results on short queries (pigeonhole threshold for ≤2 ngrams)
- Drop impl for LucivyHandle/ShardedHandle (writer locks properly released)
- 49 clippy warnings fixed, CI re-enabled with
-D warnings - quickwit feature removed (-1553 lines)
- Dead fuzzy paths removed (-514 lines)
See CHANGELOG.md for the full list of changes.