Typo-tolerant Rust search

Instant search that feels fast before it gets complicated.

TypoJet is a compact open-source search engine by A A Hasnat for websites and small apps. Prefix-friendly, schema-aware, field-boosted, and easy to run as a single binary.

  • Typo tolerance with Levenshtein scoring
  • Prefix/autocomplete search for instant UX
  • Multi-index, filterable, sortable, and shippable
$ cargo run -- --api-key dev-secret
typojet listening on http://127.0.0.1:7700

$ curl "http://127.0.0.1:7700/indexes/docs/search?q=serch"
{
  "query": "serch",
  "total": 1,
  "hits": [
    {
      "id": "doc-1",
      "score": 10.0,
      "snippets": {
        "title": "Rust Search Engine"
      }
    }
  ]
}

Why it exists

Meilisearch inspiration, much smaller delivery surface.

TypoJet is for developers who want instant search without dragging in a giant platform. It keeps the useful bits close to the metal: JSON documents, inverted index, ranking boosts, filters, sorting, pagination, and a tiny HTTP API.

Shipping model

Single binary. Local first.

Start it with Rust, point your app at the REST API, and keep your data on disk. No cluster. No control plane. No dashboard required.

Capabilities

Useful features, intentionally scoped.

Instant relevance

Exact match boost, prefix boost, field boost, and typo penalty work together to make small datasets feel sharp.

Schema aware

Configure searchable, filterable, and sortable fields per index instead of pretending every field should behave the same way.

App ready

Multi-index support, document CRUD, snippets, pagination, and optional static bearer auth cover the common first release needs.

Positioning

Built for the space between sqlite and full search infrastructure.

Best for

Docs, marketing sites, internal tools, indie apps, prototypes.

Not trying to be

OpenSearch, an enterprise suite, a distributed cluster, or a vector platform.

Current shape

Clean Rust codebase, GitHub-friendly first release, easy to inspect end to end.