Open source search engines, installed and queried
Search engines you can run yourself. The list is ordered by whether each project came up when Argusic installed it fresh, with the recording of that attempt one click away.
Tested between and . Each row shows its own test date; a project can change after that day.
27 of 30 tested projects run. 38 more waiting for a test.
In short: 22 of the 30 tested projects started as-is on a fresh machine: sonic, tantivy, zvec, flexsearch, PaddleNLP, quickwit, ublacklist, and riot, and 14 more. 5 more started once a stand-in replaced a service they expect, such as a database: yt-fts, lnx, openserp, trieve, and memfree. 3 could not be verified: fess, seekdb, and serenedb; the log shows where each one stopped.
Measured by Argusic on a fresh machine every time. Every number links to its evidence.
| # | project | verdict | Argusic Score | language | stars | tested on |
|---|---|---|---|---|---|---|
| 1 | sonic | Runs | 100 / 100 | Rust | 21,359 | |
🦔 Fast, lightweight & schema-less search backend. An alternative to Elasticsearch that runs on a few MBs of RAM. What the test found: Sonic search server builds, listens on 127.0.0.1:1491, accepts TCP connections, responds to Sonic Channel protocol (ingest/push/search/query/suggest commands work correctly), and all core tests pass. 36 minutes. | ||||||
| 2 | tantivy | Runs | 100 / 100 | Rust | 16,191 | |
Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust What the test found: Tantivy v0.27.0 compiles, all 1281 unit tests pass, and the basic_search example indexes documents and returns correct search results. 6 minutes. | ||||||
| 3 | zvec | Runs | 100 / 100 | C++ | 16,077 | |
A lightweight, lightning-fast, in-process vector database What the test found: Zvec v0.7.0 prebuilt wheel and from-source build both work: the Python SDK successfully creates vectors collections, inserts documents, and returns ranked similarity search results, and the 1543-test suite passes with zero failures. 58 minutes. | ||||||
| 4 | flexsearch | Runs | 100 / 100 | JavaScript | 13,809 | |
Next-generation full-text search library for Browser and Node.js What the test found: FlexSearch v0.8.215 is installed with 591 npm dependencies, all 128 core library tests pass against the pre-built bundle on Node.js 18.19.1, build completes successfully, and smoke-test search queries return correct results. 12 minutes. | ||||||
| 5 | PaddleNLP | Runs | 100 / 100 | Python | 12,979 | |
Easy-to-use and powerful LLM and SLM library with awesome model zoo. What the test found: PaddleNLP 3.0.0b4 installed in venv, 67 tests passed across transformer and utils test suites, tiny LLaMA model loaded and generated text on CPU, CLI responds to --help. 8 minutes. | ||||||
| 6 | quickwit | Runs | 100 / 100 | Rust | 11,702 | |
Cloud-native OSS search engine for observability What the test found: Quickwit 0.9.1 builds from source, runs as a server on localhost:7280, serves REST API, health check, index creation, JSON document ingestion, and full-text search all verified working. 36 minutes. | ||||||
| 7 | ublacklist | Runs | 100 / 100 | TypeScript | 6,656 | |
Blocks specific sites from appearing in Google search results What the test found: Install, build, test, and lint/format checks all pass on commit c395a01 with submodule builtin @ 1ddf416. 2 minutes. | ||||||
| 8 | riot | Runs | 100 / 100 | Go | 6,054 | |
Go Open Source, Distributed, Simple and efficient Search Engine What the test found: All 30 Go packages build cleanly, the full test suite passes with -race, and the riot CLI binary responds to --help with subcommands list, snapshot, and completion. 3 minutes. | ||||||
| 9 | sentrysearch | Runs | 100 / 100 | Python | 4,530 | |
Semantic search over videos using Gemini Embedding 2 or Qwen3-VL. What the test found: SentrySearch 0.1.0 is installed and its full test suite (405 tests) passes. The CLI binary is on PATH, all commands parse and respond correctly. The local embedding model cannot load in this 8GB CPU-only container, but cloud-backed indexing and search work through the standard Gemini/DashScope backends. 9 minutes. | ||||||
| 10 | USearch | Runs | 100 / 100 | C++ | 4,328 | |
Fast Open-Source Search & Clustering engine × for Vectors & Arbitrary Objects × in C++, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and... What the test found: USearch v2.26.2 Python package installed from prebuilt wheel, 772/772 pytest tests pass, 15/15 SQLite extension tests pass after building libusearch_sqlite.so locally, and the C++ native test suite passes with exit code 0. JavaScript native addon build timed out (missing numkong submodule compile). 18 minutes. | ||||||
| 11 | Toshi | Runs | 100 / 100 | Rust | 4,255 | |
A full-text search engine in rust What the test found: Toshi search engine builds, all 47 unit tests pass, the server starts on 127.0.0.1:8080, and end-to-end HTTP API operations (create index, index document, list indexes, search by term, get summary) all succeed. 7 minutes. | ||||||
| 12 | zvec-grep | Runs | 100 / 100 | Rust | 3,992 | |
Local-first search across your workspace, built for humans and AI agents. What the test found: zvec-grep 0.2.1 TypeScript implementation builds, the CLI runs and searches, the test suite passes 698 of 700 tests (2 fail only due to disabled IPv6 loopback in the container) and all 9 e2e tests pass with real model inference using local/potion-code-16m-v2. 54 minutes. | ||||||
| 13 | xerj | Runs | 100 / 100 | Rust | 3,229 | |
XERJ is the new way for AI to search data. Its autoindex capability activates agents to know your data without the token waste of grep and sed. One command... What the test found: xerj v1.0.0-rc.77 is installed at /home/runner/.local/bin/xerj, started in 690ms on --insecure mode, successfully autoindexed /work/repo/docs (18 datasets, 9681 records, 21s wall time), and serves queries on http://127.0.0.1:9200 with ES 8.13 wire protocol. No build step needed (binary install from GitHub releases)... 3 minutes. | ||||||
| 14 | tntsearch | Runs | 100 / 100 | PHP | 3,201 | |
A fully featured full text search engine written in PHP What the test found: PHP 8.0.30 (static binary) with PDO/pdo_sqlite/mbstring installed via tar.gz; Composer 2.8.5; all 88 PHPUnit tests pass against the SqliteEngine; search, searchBoolean, geo-search, fuzzy search, stemming, and indexing all verified working. 21 minutes. | ||||||
| 15 | swirl-search | Runs | 100 / 100 | Python | 3,047 | |
AI Search & RAG Without Moving Your Data. Get instant answers from your company's knowledge across 100+ apps while keeping data secure. Deploy in minutes, not... What the test found: SWIRL Community Edition installed in a Python 3.12 virtual environment with all dependencies; Django server starts and answers requests; full test suite passes 184/184 tests. 11 minutes. | ||||||
| 16 | tinysearch | Runs | 100 / 100 | Rust | 2,977 | |
🔍 Tiny, full-text search engine for static websites built with Rust and Wasm What the test found: tinysearch 0.11.1 builds from source, generates valid WASM output from fixtures/index.json, all 24 unit tests and 5 integration tests pass. 6 minutes. | ||||||
| 17 | rats-search | Runs | 100 / 100 | C++ | 2,016 | |
rats-search: BitTorrent P2P multi-platform search engine for Desktop and Web servers with integrated torrent client What the test found: Rats Search builds into a working binary, reports version 2.0.0.1 on --version, starts in console mode by launching its bundled Manticore Search 17.5.1 and connecting to the DHT network, and all 17 unit-test suites pass (232 passed, 0 failed). 9 minutes. | ||||||
| 18 | SeekStorm | Runs | 100 / 100 | Rust | 1,918 | |
SeekStorm: vector & lexical search - in-process library & multi-tenancy server, in Rust. What the test found: Workspace builds cleanly with Rust 1.99.0, all 45 seekstorm library integration tests and all 7 seekstorm_client E2E tests pass, and the release seekstorm_server binary serves the live endpoint (HTTP 200) and completes the API key creation, index creation, document indexing, commit, and query flow returning the... 63 minutes. | ||||||
| 19 | txtai | Runs | 94.7 / 100 | Python | 12,998 | |
💡 All-in-one AI framework for semantic search, LLM orchestration and language model workflows What the test found: txtai 9.14.0 installed in venv, all core embeddings/graph/workflow/agent/cloud/vector/scoring tests pass, API responds to search/index/count endpoints with real model inference, ~470 automated tests pass across 30 test suites. 83 minutes. | ||||||
| 20 | infinity | Runs | 60 / 100 | C++ | 4,734 | |
The AI-native database built for LLM applications, providing incredibly fast hybrid search of dense vector, sparse vector, tensor (multi-vector), and full-text. What the test found: Infinity v0.7.3 nightly (x86_64-v2) standalone server starts and accepts Thrift connections on port 23817 and HTTP on port 23820; Python SDK can create tables, insert vectors, run dense vector search queries, and return results via Polars DataFrames. 12 minutes. | ||||||
| 21 | arcadedb | Runs | 60 / 100 | Java | 1,189 | |
ArcadeDB Multi-Model Database, one DBMS that supports SQL, Cypher, Gremlin, HTTP/JSON, MongoDB and Redis. ArcadeDB is a conceptual fork of OrientDB, the first... What the test found: ArcadeDB 26.10.1-SNAPSHOT is fully built and functional: the server starts in development mode listening on port 2480, serving the Studio web UI (HTTP 200), and the engine test suite passes ~14624 tests with 0 errors and 1 pre-existing flaky timeout test that fails under heap contention during concurrent runs. 85 minutes. | ||||||
| 22 | lancedb | Runs | 48 / 100 | Rust | 11,617 | |
Developer-friendly OSS embedded retrieval library for multimodal AI. Search More; Manage Less. What the test found: Rust core crate lancedb compiles and passes all 73 integration tests; Python bindings install, import, and pass 1368 tests; the local (in-process) embedding store works end-to-end with vector search queries returning correct results. 84 minutes. | ||||||
| 23 | yt-fts | Runs with mocks | 92 / 100 | Python | 1,811 | |
YouTube Full Text Search - Search all of YouTube from the command line What the test found: The yt-fts Python package installs via virtual env, CLI responds to --version/--help/config, list and full-text search work against the downloadable test database, and all 9 tests pass after patching download mocks and API-key mocks. 19 minutes. | ||||||
| 24 | lnx | Runs with mocks | 92 / 100 | Rust | 1,456 | |
A flexible, performant and reliable search database without the AI bullshit. What the test found: lnx 0.10.0 builds, starts as a REST API on port 4202, responds 200 to health checks, info summary, and docs endpoints, and passes all 10 tests. 23 minutes. | ||||||
| 25 | openserp | Runs with mocks | 92 / 100 | Go | 1,455 | |
Self-hosted SERP API for AI, SEO & automation. Browser-rendered Google, Bing, Yandex, Baidu, DuckDuckGo and Ecosia search with page extraction 🎉 What the test found: OpenSERP v0.8.13 builds, all 12 unit test suites pass, and the HTTP server starts, serving /health and /ready endpoints on 127.0.0.1:7000. 8 minutes. | ||||||
| 26 | trieve | Runs with mocks | 82 / 100 | Rust | 2,719 | |
All-in-one platform for search, recommendations, RAG, and analytics offered via API What the test found: Python SDK installs and all 408 tests pass; JS/TS packages all build successfully; Rust server, Docker services, and integration tests are blocked by missing toolchain and network. 12 minutes. | ||||||
| 27 | memfree | Runs with mocks | 56 / 100 | TypeScript | 1,513 | |
MemFree - Hybrid AI Search Engine & AI Page Generator What the test found: The MemFree monorepo has all packages installed (bun i succeeded in frontend, vector, mdreader, and extention). The frontend test suite passes 13/13. The Next.js dev server starts and serves HTTP 200 at /. The mdreader launches and returns HTTP 200. The vector service launches and responds to requests. 1 vector local... 17 minutes. | ||||||
| 28 | fess | Could not verify | 47.5 / 100 | Java | 1,140 | |
Open-source, self-hosted enterprise & site search server built on OpenSearch. Crawls web / file / DB / cloud sources, 20+ languages, REST API, and AI/RAG &... What the test found: Fess 15.9.0-SNAPSHOT builds and packages successfully from source. All 7,634 unit tests pass. The embedded Tomcat binds port 8080 but the application fails at runtime because no OpenSearch backend is reachable on localhost:9200. 36 minutes. | ||||||
| 29 | seekdb | Could not verify | 20 / 100 | C++ | 3,106 | |
The AI-Native Search Database. Best for agent storage, it unifies vector, text, structured, and semi-structured data into a single engine. This all-in-one... What the test found: pyseekdb Python SDK 1.4.0.post1 installed and verified: embedded mode creates/upserts vector collections and returns semantically relevant query results. C++ source build blocked by missing system m4 (needed by bison 2.4.1 for SQL parser generation) and slow dependency mirror, though all 20 RPM dependency packages... 65 minutes. | ||||||
| 30 | serenedb | Could not verify | 10 / 100 | C++ | 875 | |
The First Real-Time Search Analytics Database What the test found: could not be verified; the log shows where it stopped. 87 minutes. | ||||||
| - | infinispan | Not yet tested | - | Java | 1,355 | - |
| - | walrus | Not yet tested | - | Python | 1,208 | - |
| - | SearchCLI | Not yet tested | - | TypeScript | 1,194 | - |
| - | pisa | Not yet tested | - | C++ | 1,059 | - |
| - | wikiman | Not yet tested | - | Shell | 1,021 | - |
| - | FlashRank | Not yet tested | - | Python | 1,008 | - |
| - | search_cop | Not yet tested | - | Ruby | 838 | - |
| - | meilisearch-ui | Not yet tested | - | TypeScript | 781 | - |
| - | probe | Not yet tested | - | Rust | 725 | - |
| - | algoliasearch-client-php | Not yet tested | - | PHP | 696 | - |
| - | Qmedia | Not yet tested | - | TypeScript | 635 | - |
| - | Ominis-OSINT | Not yet tested | - | Python | 629 | - |
| - | para | Not yet tested | - | Java | 575 | - |
| - | airAnime | Not yet tested | - | JavaScript | 460 | - |
| - | meilisearch-rust | Not yet tested | - | Rust | 431 | - |
| - | itemsjs | Not yet tested | - | JavaScript | 413 | - |
| - | addok | Not yet tested | - | Python | 388 | - |
| - | google-this | Not yet tested | - | JavaScript | 378 | - |
| - | Xapiand | Not yet tested | - | C++ | 362 | - |
| - | Ataru | Not yet tested | - | Rust | 359 | - |
| - | fojin | Not yet tested | - | Python | 349 | - |
| - | redd-archiver | Not yet tested | - | Python | 346 | - |
| - | session-knowledge | Not yet tested | - | Python | 337 | - |
| - | eye_of_web | Not yet tested | - | Python | 326 | - |
| - | njt | Not yet tested | - | TypeScript | 318 | - |
| - | scout | Not yet tested | - | Python | 315 | - |
| - | searcharray | Not yet tested | - | Python | 313 | - |
| - | solr-operator | Not yet tested | - | Go | 286 | - |
| - | typikon | Not yet tested | - | Rust | 284 | - |
| - | relevanceai | Not yet tested | - | Python | 283 | - |
| - | cortexdb | Not yet tested | - | Go | 274 | - |
| - | fast | Not yet tested | - | Ruby | 273 | - |
| - | OpenPlexity-Pages | Not yet tested | - | Python | 255 | - |
| - | retriv | Not yet tested | - | Python | 253 | - |
| - | cspapers.org | Not yet tested | - | JavaScript | 248 | - |
| - | acts_as_indexed | Not yet tested | - | Ruby | 212 | - |
| - | crawler | Not yet tested | - | Java | 205 | - |
| - | ghs | Not yet tested | - | Java | 201 | - |
runs installed and started with its real dependencies. runs with mocks started after stand-ins replaced external services such as a database or a third-party API. could not verify neither the standard agent nor the stronger one got it running within the time limit; the log shows where it stopped.
How we tested
On this list as of the latest test: 22 projects ran as-is, 5 with mocks, 3 could not be verified, 38 still waiting. Languages tested: C++, Go, Java, JavaScript, PHP, Python, Rust, TypeScript. Every attempt used a clean single-use machine, the subject at a pinned version, and a 45-minute limit; the complete procedure is on the methodology page.
Frequently asked questions (FAQs)
How is this list ranked?
By measurement, not opinion: projects Argusic installed and launched on a fresh machine come first, then those that ran with mocks in place of external services, then those it could not verify. Ties go to the Argusic Score, then how popular it is on its own source.
Why are some projects unranked?
38 projects are still waiting for a test or for a finished attempt. They are listed without a rank until Argusic has measured them.
Where is the evidence?
Every row links to the project's Argusic page, where each run has a full log and a terminal recording stored with a sha256 fingerprint. The same pages exist for every one of the tested projects, on this list or not.
More lists in this category
- vector databases (shares FlashRank, SeekStorm, arcadedb, cortexdb, infinispan, infinity, lancedb, relevanceai, txtai, xerj, zvec with this list)
- Open source databases, installed and queried (shares arcadedb, infinispan, seekdb, serenedb, solr-operator, sonic with this list)
- web scraping tools (shares fess, openserp with this list)
- AI agent frameworks (shares txtai with this list)
- self-hosted AI apps (shares fess with this list)
- API clients (shares algoliasearch-client-php with this list)
- developer CLI tools (shares SearchCLI with this list)
- static site generators (shares redd-archiver with this list)
- API gateways
- CI/CD tools
- CMS platforms
- LLM gateways
- MCP servers
- VPN tools
- backup tools
- browser automation tools
- code editors
- open source coding agents
- e-commerce platforms
- ebook readers
- game engines
- open source games
- home automation tools
- low-code platforms
- map tools
- message queues
- Open source music servers, installed and played
- observability tools
- Open source office suites, installed and launched
- self-hosted password managers
- project management tools
- screen recorders
- self-hosted analytics
- speech tools
- uptime monitors
- open source video editors
- video players
- whiteboard tools
- wikis
- workflow automation tools
- self-hosted Notion alternatives
- self-hosted dashboards
- self-hosted git servers