About
A small service, with a clear seam.
Polymathy exists because most teams building “answer experiences” over internal or web content end up writing the same boring middleware: take a query, get URLs, fetch them, chunk them, return the chunks. That middleware deserves to be its own service, in Rust, with an OpenAPI spec.
What it is
An actix-web service that exposes a single resource —
GET /v1/search — and accepts a query string parameter
q. The handler:
- Issues a GET to
SEARXNG_URLwithqandformat=json. - Takes the first ten URLs from
results[]. - Fans out a POST to
PROCESSOR_URLper URL, with a fixed config block (chunking_size: 100,chunking_type: "words",embedding_model: "AllMiniLML6V2"). - Collects each processor response into a chunk map keyed by sequential
u64. - Returns the map as JSON.
A 384-dim USearch index is instantiated per request but the v0.2 handler does not yet write to it from the public endpoint — the vector index is wired in but unused on the read path. That is what the source says; we are not going to oversell it.
What it isn't
Polymathy does not include a SearxNG instance, a content processor, an embedding model, an LLM, a reranker, a citation renderer, an auth layer, or a persistent index. It is a seam — the bit of glue between a metasearch engine and a chunker — not a turnkey RAG product.
Who maintains it
Skelf-Research. Polymathy is published as a
Rust crate (polymathy),
open-sourced under GPL-3.0, and developed in the open at
Skelf-Research/polymathy.
Versioning & releases
The crate is at v0.2.0 at the time of writing. Releases are tagged
on GitHub and published to crates.io. The API surface is intentionally narrow and
the version reflects that — expect /v1/search to remain stable
while we figure out whether the persisted-index and rerank endpoints belong in
this binary or a separate one.
Getting in touch
File issues at
github.com/Skelf-Research/polymathy/issues.
Pull requests welcome — please run cargo fmt and
cargo clippy first. Documentation lives at
docs.skelfresearch.com/polymathy.