kynetradb

One Rust binary: BM25 search + vector + KV + document + auth + files + realtime + agentic admin.

vs
Typesense

Open-source typo-tolerant search engine in C++; single binary, fast, no Elasticsearch complexity.

Dimension kynetradb Typesense
Full-text search BM25 (parallel, 1.07 ms @ 100k) BM25
Vector search Brute-force cosine (2.21 ms @ 100k, no HNSW yet) Typesense uses HNSW which scales better past ~100k vectors HNSW
Auth Built-in (bcrypt + JWT, 3 roles) Built-in
File storage Built-in (local + S3-compatible, SigV4) None
Realtime SSE (topic + kind filters) None
KV lookups Yes (point lookup by ID) No
Document filter Yes (JSON predicates) Yes
LLM runtime Yes (Anthropic + OpenAI + Ollama) No
Outbound DB sync Yes (12 sinks: Postgres, DynamoDB, BQ, Firestore, CF, Mongo, Redis, Pinecone) No
Self-host Yes (single binary) Yes
Single binary Yes Yes
License Apache-2.0 GPL-3.0
Deploy targets 18 (1-click) 1 (1-click)
Free tier Yes — Apache-2.0, self-host free yes — self-host free; Typesense Cloud trial

When to pick Typesense

Closer to Algolia than Elasticsearch in UX; one of the fastest BM25 engines in benchmarks. No auth, files, KV, or realtime beyond webhooks.

  • You need merchandising rules, A/B search testing, or built-in analytics — kynetradb has none of those today.
  • Your team is already invested in Typesense's SDK and ecosystem.

When to pick kynetradb

  • You need BM25 full-text + vector similarity + auth + files + realtime in one process — no external services.
  • You want to deploy to 18 targets (including 5 Indian providers) from one Dockerfile.
  • You need outbound sync to 12 databases (Postgres, DynamoDB, BigQuery, Firestore, Cloudflare, MongoDB, Redis, Pinecone) with zero extra code.
  • You want an agentic admin with 10 typed LLM-driven actions and a persisted audit trail.
  • You want Apache-2.0 with a self-host path that doesn't require an ops team.

Full-text search call. These are documentation-accurate shapes, not runnable end-to-end examples.

kynetradb
# kynetradb — BM25 search
curl -X POST https://your.host/v1/search \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "q": "aurora espresso",
    "top_k": 10,
    "kind": "product"
  }'
Typesense
// Typesense — JavaScript client
const results = await client.collections('products').documents().search({
  q: 'aurora espresso',
  query_by: 'title,vendor',
  per_page: 10,
});