dozeGitHubGet doze
Registry
Check against your doze

Which doze do you run?

doze 0.1.1newest · 2 Jul 2026doze 0.1.02 Jul 2026Stop checkingKept in this browser only. Nothing is sent anywhere.

FerretDB

OfficialSigned

MongoDB-compatible database (FerretDB v2 over Postgres)

doze/ferret
$ doze add ferret
Newest
0.2.3 · 2 Nov 2026
Needs
any doze
Runs
FerretDB 2
Platforms
macOS arm64 · Linux arm64 · Linux x86_64
Licence
Apache-2.0
Source
on GitHub
Not the newest: 0.2.3 is current.You are looking at 0.2.1 from 2 Jul 2026. What changed since
Go to 0.2.3

ferret 0.2.1

Superseded
Released
2 Jul 2026
Needs
any doze
Plugin protocol
1
Engines
FerretDB 2
Platforms
3 of 3
Advisories
None known

0.2.1 sets no oldest doze, so it runs on every doze (0.1.0 and up).

What changed between 0.2.1 and 0.2.3

From doze-modules history
  1. 0.2.32 Nov
    No notes for this release.
  2. 0.2.23 Jul
    The readiness check connects as -U postgres, not your OS user.

Same plugin protocol (1) and the same engines (FerretDB 2) throughout, so the upgrade needs no change to doze.hcl.

Projects pinned to 0.2.1 keep using it until someone runs doze modules upgrade. Nothing moves on its own: not doze up, not time, not a new release.

From doze 0.2: the newest release your doze can run
$ doze modules upgrade ferret

Artifacts

One signed archive per platform. Files live on GitHub; the registry lists them and signs their checksums.
PlatformFile (downloads from GitHub)SHA-256Signature (ed25519)
macOS arm64
aarch64-apple-darwin
ferret-plugin-0.2.1-aarch64-apple-darwin.tar.gz
2e1a2a88ed9510f067f3c38b8b00d059fb814bd76e985e9255ffbcb31bd2caf8
dKvbFong…TICw==
Linux arm64
aarch64-unknown-linux-gnu
ferret-plugin-0.2.1-aarch64-unknown-linux-gnu.tar.gz
0e724c1fe516e2601a524df3a644f26dc80008c10ebe93f876e1d299a9cb81ea
aMvUsIQJ…IMDw==
Linux x86_64
x86_64-unknown-linux-gnu
ferret-plugin-0.2.1-x86_64-unknown-linux-gnu.tar.gz
626c367efe415fc2bced2f28bc4f3d61f678ff0ec2c07939a525149ad7f5cc96
eualnVOv…bYDQ==

Every file is under https://github.com/doze-dev/doze-modules/releases/download/ferret/. Intel Macs and Windows have no build; WSL2 uses the Linux x86_64 file.

Signing

The index is signed as a whole, and each archive is signed. doze checks both before anything runs, and refuses a module whose checksum or signature doesn't match.

Key
Nu5y8mbj…Wjw=
Where the key lives
Compiled into doze. doze never fetches or trusts a key on first use.
Namespace
doze
Publisher
doze-dev Official
Index signature
kpZE+ML2…Dg==
What is signed
Each archive: its lowercase-hex SHA-256. The index: module, namespace, releases and channels as canonical JSON.
Not yet signed
The doze (oldest doze) field sits beside the signed part today. new The design moves it inside.
How signing works

Verify it yourself

[planned: doze modules verify] Today doze runs these checks itself on every download. The same checks by hand, for macOS arm64. Needs OpenSSL 3: the openssl that ships with macOS has no ed25519 (brew install openssl@3).

Checksum, then signature
# 1. download and hash; compare with the table above
$ curl -LO https://github.com/doze-dev/doze-modules/releases/download/ferret/ferret-plugin-0.2.1-aarch64-apple-darwin.tar.gz
$ shasum -a 256 ferret-plugin-0.2.1-aarch64-apple-darwin.tar.gz
2e1a2a88ed9510f067f3c38b8b00d059fb814bd76e985e9255ffbcb31bd2caf8  ferret-plugin-0.2.1-aarch64-apple-darwin.tar.gz

# 2. the signature is over that hex string, with doze's public key
$ printf %s 2e1a2a88ed9510f067f3c38b8b00d059fb814bd76e985e9255ffbcb31bd2caf8 > digest.txt
$ echo 'dKvbFong591ITHHHI2T6HfF0BR3EOb94f7GpbgOvv4BbkIqWvlowDZxh+bUYwx5FUY1hgrE5GoSGxNgjdoTICw==' | base64 -d > sig.bin
$ (printf '\x30\x2a\x30\x05\x06\x03\x2b\x65\x70\x03\x21\x00'; echo 'Nu5y8mbjYv7XEtNFBXwPVl+C8SBteVApIROefBwGWjw=' | base64 -d) > doze-key.der
$ openssl pkeyutl -verify -pubin -keyform DER -inkey doze-key.der -rawin -in digest.txt -sigfile sig.bin
Signature Verified Successfully

What doze.lock records for 0.2.1

A project pinned to 0.2.1 carries this entry. doze modules upgrade replaces it whole: release, engines and checksums move together in one reviewable diff. Every platform's checksum goes in, so a teammate on Linux verifies against the same pin you made on a Mac. Pinned and cached means no network at all.

The engine itself is pinned separately, under engines:. Engine versions

doze.lock
modules:
    doze/ferret:
        version: 0.2.1
        protocol: 1
        engines:
            - "2"
        hashes:
            aarch64-apple-darwin: sha256:2e1a2a88ed9510f067f3c38b8b00d059fb814bd76e985e9255ffbcb31bd2caf8
            aarch64-unknown-linux-gnu: sha256:0e724c1fe516e2601a524df3a644f26dc80008c10ebe93f876e1d299a9cb81ea
            x86_64-unknown-linux-gnu: sha256:626c367efe415fc2bced2f28bc4f3d61f678ff0ec2c07939a525149ad7f5cc96
        # no doze: line; 0.2.1 sets no oldest doze