# tinysearch/tinysearch

🔍 Tiny, full-text search engine for static websites built with Rust and Wasm

Repository: https://github.com/tinysearch/tinysearch
Canonical: https://ross.abutalabs.com/products/tinysearch
Homepage: https://endler.dev/2019/tinysearch
Language: Rust
License: Apache-2.0
License Family: permissive
Topics: bloom-filter, static-site, search-engine, wasm, rust, lunrjs, elasticlunr, hacktoberfest
Last push: 2026-08-15T16:16:50+00:00

## Health v2 (maintenance only)
Score: 87/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 97, release rhythm 66, longevity 100
- inputs: {"age_days": 3139, "days_push": 18, "days_rel": 19, "gap_med": 182.5, "n_releases_24m": 3}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2963, forks 94 (observed 2026-08-28T04:07:32.405635+00:00)

## What it is
tinysearch is a lightweight full-text search engine for static websites, written in Rust and compiled to WebAssembly to run entirely in the browser. It produces a compact self-contained index (~2 kB per article) that works with static site generators like Jekyll, Hugo, and Zola as an alternative to lunr.js or external services like Algolia.

## Use cases
- add search to a static website without a backend
- replace lunr.js with a smaller client-side search
- add full-text search to a Hugo or Jekyll blog
- self-hosted search without external services like Algolia or Google
- compact offline search index for a small blog
- client-side search using WebAssembly

## When to choose
- your static site is small to medium sized (hundreds of posts)
- you want zero external dependencies and no server-side search
- payload size matters and JavaScript-heavy solutions like lunr.js are too large
- you use a static site generator and can produce a JSON index

## When to avoid
- your site is very large (thousands of articles) since the whole index ships as one binary
- you need fuzzy matching, ranking, or advanced query features
- you need server-side search or dynamic content indexing
- you need prefix search on body text with the xor8 indexer

## Facets
- artifact type: cli-tool
- maturity: active
- function: search-engine, cli, wasm
- domain: web-development
- platform: wasm, browser, cli, cross-platform
- tags: static-site-search, bloom-filter, rust, wasm, client-side-search, jekyll, hugo, zola, search, static-site-generators

## Member repositories
- tinysearch/tinysearch (main) score 87

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:32.405635+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:32:08.079447+00:00, confidence not recorded.
  - readme: https://github.com/tinysearch/tinysearch (fetched 2026-08-28T04:07:32.405635+00:00, sha 27f26c4aa76f)
  - homepage: https://endler.dev/2019/tinysearch (fetched 2026-08-29T09:47:21.584101+00:00, sha 02be6e51a039)
  - site_page: https://endler.dev/about (fetched 2026-08-29T09:47:21.588578+00:00, sha 6c574c6151a6)
- Data as of 2026-08-30T08:39:29.467469+00:00.
