hidane (火種, the seed of fire) — a Firestore emulator without Java.

A single Rust binary that replaces the official Cloud Firestore emulator. No JVM. Starts in milliseconds. Tested for parity against the official emulator.

curl -fsSL https://hidane.dev/install.sh | sh Not yet available — no release

Copy is disabled: there is no release yet. Until then, build from source. This line becomes live with the first release.

Pre-release · runs from source · no release yet

Why hidane

0.74 s · 95 MiB

0.74 s to start, 95 MiB idle

The official emulator takes 0.74 s to open its port (2.5 s through the CLI) and sits at 95 MiB idle. hidane on main: 5.5 ms and 7.4 MiB.

Source: measurements and raw logs
11× slower

Writes slow down as data grows

With a listener attached, the official emulator's batch writes slow down in proportion to the number of documents: 11 times slower at 100k. hidane is designed so that a commit costs only what it changes: the same 100k documents take 4.9 s, flat per batch.

Source: measurements and raw logs

All figures are measurements, but not side by side: hidane's were taken later on a quieter machine, and a same-machine comparison is coming. Context: why hidane.

Works with

Status on main, before the first release: planned not verified verified
gRPCfirebase-admin (Node)verified
gRPC@google-cloud/firestoreverified
gRPCfirebase-js-sdk on Nodeverified
RESTfirebase-js-sdk Liteverified
WebChannelBrowser firebase-js-sdkverified
gRPCGonot verified
gRPCPythonnot verified
gRPCJavanot verified
gRPCiOSnot verified
gRPCAndroidnot verified
gRPCFlutter (mobile / desktop)not verified
WebChannelFlutter Webnot verified
v0.2Security Rulesplanned

Verified means the client's results were compared with the official emulator's; not verified means hidane serves its transport but nobody has run that client yet. Which transport each SDK needs: compatibility.

Parity

hidane treats the official emulator as the oracle: its answers are recorded, and the test suite replays every recording against hidane. No claim of compatibility without a test behind it.

So far: 16 recorded fixtures, from value ordering to the browser transport, and SDK results compared side by side (results). A parity table will follow.

Known, intentional differences are listed in parity exceptions.

Roadmap

  1. v0.1

    Server SDKs and native clients: firebase-admin, the Google Cloud libraries, iOS, Android and Flutter, running under firebase-tools.

    v0.1 milestone on GitHub
  2. v0.2

    Security Rules.

    v0.2 milestone on GitHub
  3. v0.3

    Browser clients: firebase-js-sdk in the browser (already working on main) and Flutter Web.

    v0.3 milestone on GitHub

Scope, targets and risks: ROADMAP.

Install (planned)

None of these channels exist yet. The commands below show the intended shape and do not work today.

GitHub ReleasesPrebuilt binariesplanned
cargo binstallcargo binstall hidaneplanned
Homebrew tapbrew install hidane-dev/tap/hidaneplanned
npmnpm install --save-dev hidaneplanned
pub.devdart pub global activate hidaneplanned
Dockerdocker run ghcr.io/hidane-dev/hidaneplanned
curl | shcurl -fsSL https://hidane.dev/install.sh | shplanned