Skip to content

Mimic

A fast, lightweight HTTP mock server. Define mock responses in simple JSON files and let Mimic handle the rest.

Blazing fast

Built with Rust and Axum. Sub-10ms response times for most requests, with under 1 second startup.

Ultra lightweight

Around 1.66 MiB of memory at idle and 0.02% CPU. Comfortable on laptops, CI runners, and tiny VMs.

JSON-based mocks

No config DSL to learn. One JSON file per endpoint. Drop them in a folder and Mimic picks them up.

Hot reload

Edit a mock file and Mimic reflects the change immediately — no restart, no rebuild.

Advanced matching

Match on path parameters, query params, headers, and request body content — not just method and path.

Dynamic responses

Echo request data back with {{ }} templating, generate fake data with {{faker.*}}, simulate latency, or step through a sequence of responses.

Admin dashboard

See every request, why it did or didn’t match, and switch scenarios live — at /admin/dashboard.

Proxy & record-and-replay

Point Mimic at a real API and let it build a matching mock set for you.

CI-friendly validation

mimic validate loads your mocks exactly as the server would and flags dead routes, bad statuses and broken regexes before they bite.

Docker-first

Prebuilt images on Docker Hub for amd64 and arm64. Mount a folder of mocks and you’re done.

Terminal window
docker run -d \
--name mimic \
-p 8080:8080 \
-v $(pwd)/mocks:/app/mocks:ro \
ragilhadi/mimic:latest

Drop a JSON file in ./mocks/ and Mimic will serve it. That’s it.

New to Mimic?

Start with the Introduction to learn what Mimic is and when to reach for it.

Ready to build?

Jump into Quick Start and have a mock server running in a couple of minutes.

Need precise matching?

The Advanced Matching section covers path parameters, query params, headers, and body matching.

Debugging a mismatch?

The Admin Dashboard shows every request and explains exactly why a mock did or didn’t match.