Skip to content

lucivy v2.0.0

Latest

Choose a tag to compare

@L-Defraiteur L-Defraiteur released this 10 May 17:31

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::lucivyer and find Error::LucivyError.
  • Correct BM25 cross-shard — identical scores whether 1 shard or 4 (diff=0.0000).
  • Distributed searchexport_stats / merge_stats / search_with_global_stats for 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_walkprefix_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.