Repository navigation
v0.3.0 - pluggable multi-engine backends
First release with pluggable search backends.
Added
- Multi-backend support via
OXE_BACKENDS(JSON): single engine, fallback chain, or fanout compositor. Any engine the bundled ddgs library works: bing, brave, google, mojeek, yahoo, yandex, wikipedia. DdgsBackend(engine)drives any ddgs engine through the same Exa-compatible translation layer;DDGBackendis the ddg specialization.oxe.registry: builtins + engine names +oxe.backendsentry-point discovery. Third-party backends register by name.FallbackBackend(first non-empty wins, per-backend timeout) andFanoutBackend(concurrent query, merge + dedupe by URL).- Package-root exports:
BackendError,FallbackBackend,FanoutBackend,SearchBackend,build_from_env.
Changed
- Cache key includes the backend name; results from different engines never collide in one database.
# DDG first, fall back to bing
OXE_BACKENDS='["ddg", "bing"]' oxeFull changelog: https://github.com/espetro/oxe/blob/main/CHANGELOG.md