Self-hosted service
meilisearch/meilisearch avatar
meilisearch/meilisearch

Meilisearch ships one Rust engine under two licenses, and sharding sits on the commercial side

Meilisearch is a fast search engine API in Rust for AI-powered hybrid search, with typo tolerance, faceting, geosearch, and vector search ready out of the box.

59,854 stars2,791 forksRustLicense varies

At a glance

What is it?
meilisearch/meilisearch is the Rust search engine behind full-text, semantic and hybrid search over an HTTP API, available as a managed Cloud service, an MIT Community Edition and a commercially licensed Enterprise Edition. The self-hosted path is short to start, but the license split and asynchronous indexing shape what you can build on it.
Who is it for?
Meilisearch fits teams that want typo-tolerant full-text or hybrid search behind a simple HTTP API, either self-hosted on a single node under MIT or managed on Meilisearch Cloud. It is a poorer fit for a self-hosted deployment that needs sharding without a commercial agreement, since that feature belongs to the Enterprise Edition.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • meilisearch/meilisearch59,854 ★ · +1,089
Star history
Repository2026-07-282026-11-13
meilisearch/meilisearch58.8k59.9k

1,089 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

Three LICENSE files decide which features you can run in production

The repository root holds LICENSE, LICENSE-MIT and LICENSE-EE, and the Cargo workspace declares license = "MIT". The Community Edition is the open-source engine under MIT on your own infrastructure. The Enterprise Edition adds sharding and other advanced features and requires a commercial agreement for production use. Meilisearch Cloud is the managed option, available in 9 regions across Europe, the Americas and Asia-Pacific with a 14-day trial, adding monitoring, search analytics and team management. All of them run the same engine and API, so moving between them does not mean rewriting queries. The consequence for self-hosters is concrete: if your index outgrows one node, the sharding answer is a contract, not a config flag.

The Docker image binds to 0.0.0.0:7700 and keeps data in /meili_data

The fastest self-hosted start is the official container:

code
docker run -it --rm \
  -p 7700:7700 \
  -v $(pwd)/meili_data:/meili_data \
  getmeili/meilisearch:latest

The Dockerfile compiles meilisearch and meilitool with rust:1.99-alpine3.22, then copies both into an alpine:3.22 image under /bin. It sets MEILI_HTTP_ADDR to 0.0.0.0:7700, exposes 7700/tcp, runs under tini, and makes /meili_data the working directory where data lives. A symlink at /meilisearch keeps compatibility with containers older than v0.27.0. Because the quick start uses the latest tag, a fresh pull can move you to a new release; pin a version tag if you need repeatable deployments.

A shell installer is the alternative to containers

For a plain binary, the project provides an install script:

code
curl -L https://install.meilisearch.com | sh
./meilisearch

The repository also carries download-latest.sh at its root. Piping a remote script into sh is convenient on a laptop, but on a server it means running code you have not read, so download and inspect it first if your policy requires that. Further install routes, including SDK quick starts for JavaScript, Python, PHP, Ruby, Go, Rust and React, are on meilisearch.com/docs.

Indexing is asynchronous, so a search right after an upload can come back empty

Documents go in through POST /indexes/<index>/documents with a Bearer API key, and searches through POST /indexes/<index>/search with a JSON body such as { "q": "wondre woman" }, which still returns Wonder Woman despite the typo. The catch is timing. Indexing runs asynchronously, and the project's own advice is that if a search comes back empty, wait a moment and retry. For an application this matters more than for a demo: a test suite or a write-then-read user flow that queries immediately after adding documents will see stale or empty results unless it waits for indexing to finish. Build retries or an explicit wait into the code path before you rely on read-after-write behavior.

A Cargo workspace of 23 crates around milli

The engine is split into workspace members. The workspace description is Meilisearch HTTP server, and the members include crates/meilisearch, crates/milli, crates/index-scheduler, crates/meilisearch-auth, crates/meilisearch-types, crates/dump, crates/file-store, crates/filter-parser, crates/routes, crates/routes-macros, crates/http-client and crates/openapi-generator, plus fuzzers and an xtask crate. crates/meilitool ships as a second binary in the Docker image. Two external crates, async-openai and async-openai-macros, are vendored under external-crates/. The release profile builds with codegen-units = 1, and heed is compiled with debug assertions enabled even in release, a choice the Cargo.toml comment explains as better detection of disk corruption on the cloud or in OSS.

Building your own image means setting four build arguments and a dynamic C runtime

The Dockerfile's compiler stage installs ca-certificates, build-base and openssl-dev, then runs cargo build --release for the meilisearch and meilitool packages, appending whatever you pass in EXTRA_ARGS. Three more build arguments, COMMIT_SHA, COMMIT_DATE and GIT_TAG, feed the VERGEN_GIT_SHA, VERGEN_GIT_COMMIT_TIMESTAMP and VERGEN_GIT_DESCRIBE variables, which stamp version information into the binary; leave them empty and your build carries no commit identity. RUSTFLAGS is set to -C target-feature=-crt-static, so the binary links the C runtime dynamically, which is why the runtime stage adds libgcc next to ca-certificates-bundle, tini and curl. The image also sets MEILI_SERVER_PROVIDER to docker. The workspace pulls in tikv-jemallocator 0.7.0 with override_allocator_on_supported_platforms, and a release-with-debug profile inherits release with debug symbols on, which is the profile to reach for when following PROFILING.md. In dev builds, flate2, grenad, roaring and gemm-f16 are compiled at opt-level 3 even though the rest is not. A rust-toolchain.toml file at the root pins the compiler for source builds, and TESTING.md, BENCHMARKS.md and a workloads/ directory sit alongside it for contributors.

Patch releases land on two minor lines at once

v1.56.0 was released on October 26, 2026. On November 2, 2026, v1.56.1 and v1.55.1 shipped within a minute of each other, so fixes are backported to the previous minor as well as the current one. The workspace version in Cargo.toml reads 1.56.1, and the last push was the same day. Self-hosters on 1.55 can therefore take a patch without jumping a minor version, but anyone on the latest tag will move whenever a new minor appears.

Editorial conclusion

Meilisearch fits teams that want typo-tolerant full-text or hybrid search behind a simple HTTP API, either self-hosted on a single node under MIT or managed on Meilisearch Cloud. It is a poorer fit for a self-hosted deployment that needs sharding without a commercial agreement, since that feature belongs to the Enterprise Edition. Before committing, read the editions and licensing terms in LICENSE-EE, pin a specific image tag instead of latest, and design your client code around indexing being asynchronous.

Frequently asked questions

What is Meilisearch for?

Meilisearch is a search engine for fast, relevant full-text, semantic and hybrid search, used through an HTTP API from sites and applications.

Is Meilisearch free?

The Meilisearch Community Edition is open source under the MIT license and can be self-hosted. The Enterprise Edition, which adds sharding, requires a commercial agreement for production use.

How much does Meilisearch cost?

Self-hosting the Meilisearch Community Edition carries an MIT license. Meilisearch Cloud offers a 14-day trial, and the Enterprise Edition needs a commercial agreement for production.

How do I install Meilisearch?

Run the getmeili/meilisearch:latest Docker image with port 7700 published and a meili_data volume, or use curl -L https://install.meilisearch.com | sh and then ./meilisearch for a binary.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/meilisearch-meilisearch.svg)](https://hysenlabs.com/projects/meilisearch-meilisearch)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/meilisearch-meilisearch.svg)](https://hysenlabs.com/projects/meilisearch-meilisearch)

Was this useful?