From the collection
vir-search
No. 031
A domain-agnostic Rust library for parsing Calibre-style search expressions into a typed Abstract Syntax Tree (AST).
Extracted from atrium-search and conservatory-search, vir-search provides the lexer, generic recursive-descent parser, ranking heuristics, and date-range resolvers that underpin the VirInvictus ecosystem. It directly powers Atrium, Conservatory, and Viaduct.
By parameterizing the AST over the consumer’s Field, State, and SortKey types, it avoids domain-coupling while maintaining a unified, powerful search grammar across the entire suite of desktop applications.