Show HN: Apate API mocking/prototyping server and Rust unit test library

Rust’s “deceit” server sparks mock wars, license beef, and web-app side‑eye

TLDR: Apate is a new Rust tool for faking APIs to test apps faster, and it launched as “stable.” The comments lit up with comparisons to WireMock and httpmock, a licensing quibble over MIT tweaks, and debate over using Rust for web—making testing easier while stirring ecosystem drama.

A new Rust tool called Apate—named after the goddess of deceit, no less—dropped into the scene promising easy “pretend API” servers for testing. Think: a fake backend you can poke to see how your app behaves. The dev says it’s stable and won’t break things soon, but the crowd didn’t just nod politely.

First punch: “Feels like a Wiremock for Rust,” one commenter quipped, instantly framing Apate as a clone of the popular Java tool WireMock. Then came the licensing drama. A sharp-eyed user flagged its MIT-but-not-quite license, worrying automated license scanners (SBOM tools that list project licenses) might still read it as plain MIT—“which feels problematic.” Cue eyebrow emojis and a link to the LICENSE-TERMS.

Meanwhile, the practical crowd asked, “Why are people using Rust to build web apps,” rekindling the eternal Rust-for-web debate. Others flexed alternatives: “We use httpmock and it works,” implying Apate needs a killer feature to stand out. The memes wrote themselves: a tool named for deception sparking a license debate about… deception. Still, Apate’s pitch—fast local testing, templated responses, and scripting—has devs curious, even if the comments are busy mocking the mocker.

Key Points

  • Apate is a stable API mocking/prototyping server and Rust unit test library designed for integration, end-to-end, and load testing.
  • Key features include a web UI, live spec reloading, Jinja templating, Rhai scripting, in-memory persistence, and Rust extensibility.
  • The server can be run via Docker or installed locally with Cargo; configuration is available via environment variables and CLI arguments.
  • A REST API supports runtime management of TOML specs (info, get specs, replace, append, prepend).
  • Apate is intended for local development, Rust unit tests, integration testing against predictable endpoints, load testing, and API prototyping.

Hottest takes

"Feels like a Wiremock for Rust" — RegW
"The licence terms / variation on MIT is interesting" — mnahkies
"Why are people using rust to build web apps" — vindin
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.