| Crates.io | xapian-rs |
| lib.rs | xapian-rs |
| version | 0.3.0 |
| created_at | 2024-07-10 00:24:41.667239+00 |
| updated_at | 2024-12-25 17:37:20.917526+00 |
| description | Rust bindings for the Xapian search engine |
| homepage | |
| repository | https://github.com/torrancew/xapian-rs |
| max_upload_size | |
| id | 1297651 |
| size | 223,357 |
xapian-rs provides a set of low-level, mostly-ergonomic Rust bindings for
the Xapian search library.
The bindings are provided by a mix of auto-generation (via
autocxx) and manual generation (via
cxx). When necessary, small C++ shims are implemented to
work around incompatibilities between these tools and the Xapian codebase.
xapian-rs is currently immature, untested and incomplete. During the 0.x
version series, no stability guarantees are provided for the API, and it may
change or break at any time. A small, limited real-world use case has been
implemented in pantry, which exercises
an interesting but small subset of the capabilities of Xapian:
Some functionality is not provided at this time, including (but not limited to):
KeyMakerWhere possible, xapian-rs tries to provide simple and ergonomic interactions
with idiomatic Rust code. However, Xapian is a C++ codebase which uses C++
idioms, and this does have some consequences on the current design (as do
limitations of the autocxx and cxx):
autocxx does not
currently support catching exceptions (though cxx does). In the current
version, any Xapian exception will trigger a panic in Rust code. This
will improve as the library evolves.&self
references, and therefore interior mutability is often needed to implement
interesting functionality.Several examples are provided in the examples directory. The tests
directory's integration tests are also useful.