← Overview · Compare
Polymathy vs Onyx
Open-source enterprise answer-engine platform (formerly Danswer)
Onyx is the whole answer-engine product, source-available and self-hostable. Polymathy is a single Rust service that turns SearxNG results into chunks. They sit at different altitudes: Onyx ships the chat UI and the connector zoo; Polymathy ships the fetch-and-chunk seam in the middle.
Side by side
Grounded in the public docs and source on both sides — if a row reads as opinion, it is one we are willing to defend.
| Dimension | Polymathy | Onyx | Better fit |
|---|---|---|---|
| Layer in the stack | Fetch + chunk shim between metasearch and your prompt | Full platform: connectors, index, chat UI, admin | Comparable |
| Language / runtime | Rust (actix-web 4, tokio, reqwest, usearch) | Python (FastAPI) + TypeScript (Next.js) | Comparable |
| Surface area | One read endpoint: GET /v1/search?q=... | Dozens of endpoints: chat, documents, connectors, admin | Polymathy |
| Search frontend | SearxNG (you bring the instance) | In-product connectors (Slack, Drive, Confluence, Notion, GitHub, Jira, web crawler) | Onyx |
| Chat / answer UI | Out of scope — you render the paragraph | Built-in chat UI with citations and feedback | Onyx |
| Vector store | USearch in-process, per request (no persistence in v0.2) | Vespa as the document index | Onyx |
| OpenAPI spec | Generated from Rust types via apistos; /openapi.json + Swagger/ReDoc/RapiDoc/Scalar | API docs available but not the headline feature | Polymathy |
| Citation contract | Response shape carries source_url next to every chunk by construction | Citations rendered in the chat UI; mapping handled inside the platform | Comparable |
| Deployment footprint | Single binary; one Rust crate; you supply SearxNG + processor | Multi-container: API, web, Postgres, Vespa, model server, indexer | Polymathy |
| License | GPL-3.0 | Mixed: MIT core + a paid enterprise edition | Comparable |
Pick Polymathy when
- You already run SearxNG (or want to) and need a small Rust service that turns search results into chunks for your own downstream LLM call
- You want the answer-engine UI, prompt template, and citation renderer to live in your existing product, not in a separate self-hosted app
- You want a single HTTP endpoint with an OpenAPI spec, not a Postgres + Vespa + FastAPI + Next.js deployment to operate
- Your corpus is the public web (via SearxNG) more than it is a fixed set of SaaS connectors
Pick Onyx when
- You want a turnkey internal answer engine with Slack, Confluence, Drive, Notion, GitHub, and Jira connectors out of the box
- You want a built-in chat UI, admin console, and document-set management without writing one
- Your priority is "deploy a Perplexity-for-our-wiki today" rather than building infrastructure
- You are happy operating a multi-service Python/TypeScript stack with a managed Postgres and a vector store alongside
Most teams choosing between these are not really choosing — Onyx is the answer-engine product, Polymathy is a building block. If you want to host the whole experience inside your existing app, with your own UI and your own SearxNG, Polymathy is the seam. If you want the experience itself, install Onyx.