Skip to main content

crozier

An ultra-fast, memory-efficient OpenAPI-to-SDK code generator written in Rust + minijinja. crozier reproduces Fern's generated SDKs byte-for-byte (with generator-identifying comments aside), driven by nothing but an OpenAPI document and a couple of naming flags — no per-project config, no generators written in the target language.

Python is the only target today; more will follow.

Status: early. crozier generates the Python type layer (pydantic models, enums, unions/aliases) plus version.py/py.typed, and byte-matches Fern's output for those files. See docs/matching.md for exactly what is matched and the roadmap.

Install

From PyPI (fastest — a prebuilt binary, no Rust toolchain): crozier ships as platform wheels that wrap the compiled binary and expose it as a console script, so any Python installer puts it on your PATH in seconds:

pip install crozier      # or: pipx install crozier
uvx crozier --help       # run once without installing

Platforms without a prebuilt wheel fall back to the source distribution, which builds from Rust (a toolchain is needed there).

From crates.io:

cargo install crozier --locked

From the install script (prebuilt binary from GitHub Releases, verified):

curl -fsSL https://raw.githubusercontent.com/nickderobertis/crozier/main/scripts/install.sh | sh

It detects your platform, downloads the matching archive, and verifies it against a trust root independent of where it was downloaded — a Sigstore build-provenance attestation when a verifier (cosign, pip install sigstore, or gh) is present, else the canonical SHA-256 checksum. Pin a version or install location with sh -s -- --version v0.1.0 --to ~/.local/bin.

From source (latest main):

cargo install --git https://github.com/nickderobertis/crozier --locked

From a release archive (manual): each release publishes per-platform archives named crozier-<tag>-<target>.tar.gz with a matching .sha256 and a .sigstore.json provenance bundle, for targets x86_64/aarch64 Linux, x86_64/aarch64 macOS, and x86_64 Windows. Download the archive for your platform from the Releases page, verify the checksum (or the attestation), and put the crozier binary on your PATH.

Usage

crozier generate \
  --spec path/to/openapi.yml \
  --output ./generated \
  --package-name my_api \
  --project-name my-api
  • --spec — the OpenAPI 3.x document (.yml, .yaml, or .json).
  • --output — directory to write the SDK into.
  • --package-name — the Python import package (the directory under src/). Defaults to a snake_case of the API title.
  • --project-name — the distribution name recorded in version.py. Defaults to the package name.

crozier exits 0 on success (with a one-line summary on stderr) and 1 on any error, printing the exact problem and a suggested fix.

Development

The command surface is a small set of just recipes:

just bootstrap   # set up from a clean clone (toolchain + dev tools)
just check       # full gate: fmt, clippy -D warnings, tests + e2e + coverage, deny, machete, doc
just test        # fast tests with coverage enforced (95%)
just test-e2e    # drive the compiled binary and byte-compare against fixtures
just format      # rustfmt in place
just upgrade     # cargo update, then re-run the gate

See AGENTS.md for the durable contributor guide and docs/matching.md for the byte-matching strategy.

License and attribution

crozier is licensed under Apache-2.0. It is an independent, clean-room implementation — it reproduces Fern's generated output format (the project's explicit goal) and does not copy Fern's generator source.

The test fixtures under tests/fixtures/ are Fern's own output and OpenAPI test specs, used under Apache-2.0 with attribution and a statement of changes; see NOTICE and licenses/fern-APACHE-2.0.txt.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crozier-0.0.11.tar.gz (112.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

crozier-0.0.11-py3-none-win_amd64.whl (1.1 MB view details)

Uploaded Python 3Windows x86-64

crozier-0.0.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

crozier-0.0.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

crozier-0.0.11-py3-none-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

crozier-0.0.11-py3-none-macosx_10_12_x86_64.whl (1.2 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file crozier-0.0.11.tar.gz.

File metadata

  • Download URL: crozier-0.0.11.tar.gz
  • Upload date:
  • Size: 112.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for crozier-0.0.11.tar.gz
Algorithm Hash digest
SHA256 ba6ea33c09099bee77cac64a4e14f91c6ca2bb51eac5f8de08a5723a47be118a
MD5 6f5d5ae4d66e99b65289e9d6bd8e9946
BLAKE2b-256 0412e66b831955c7cd055973af45fecb945823d3ea3399a18d8db6797baf4032

See more details on using hashes here.

File details

Details for the file crozier-0.0.11-py3-none-win_amd64.whl.

File metadata

  • Download URL: crozier-0.0.11-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for crozier-0.0.11-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 e3ca0ce4b5e978106c7eec9f1ee30d2cb735ac74270a2eed30068a6d07508765
MD5 4f3369e64a96f5a7eef946a38fde5a61
BLAKE2b-256 6c172e204592552930978eb432fd3c18f33315b525233c519279386aeae15122

See more details on using hashes here.

File details

Details for the file crozier-0.0.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for crozier-0.0.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8602a6489dc30c6955ee227a6580d44e9d8833e0892caad495a92f3690bd5af5
MD5 d06bf0451f8e88ef3376ef397a97341f
BLAKE2b-256 1fcdacf744974e43d5173168af1c6a52b8ff4de6bab137516c6190314692e04f

See more details on using hashes here.

File details

Details for the file crozier-0.0.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for crozier-0.0.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eddfea571be529974f67e42d842f5b627c83f637f7ba6892b6b17b424648da52
MD5 e1e13b5ee7cbaac70bf2dd3014b112b2
BLAKE2b-256 255e62f08d2d85446283a804cde130848641e9ed78871572d4a8cb482080c9b9

See more details on using hashes here.

File details

Details for the file crozier-0.0.11-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crozier-0.0.11-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3a2746c2ca41b88a7257444187960bf75c4b1545604f078174eb870ff0e9edf8
MD5 12ca5bf8092fb0e136da2f2b500c03af
BLAKE2b-256 1a6f338ebaf1d6fcaaa8f4546222269bd985a3f6f09f83e325b57abc5b9fbf20

See more details on using hashes here.

File details

Details for the file crozier-0.0.11-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for crozier-0.0.11-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9a8df758d5ad4d13fefc33cf186f46d6d735399e94cd55606946013366d0f978
MD5 560148fe959952510ac8e6f6311942ab
BLAKE2b-256 c130d5e92d3051c1c9341bfe44e3c535fef5d12bca63568a3c65735b1c34bdef

See more details on using hashes here.

Release history Release notifications | RSS feed

0.0.31

6 files

0.0.30

6 files

0.0.29

6 files

0.0.28

6 files

0.0.27

6 files

0.0.26

6 files

0.0.25

6 files

0.0.24

6 files

0.0.23

6 files

0.0.22

6 files

0.0.21

6 files

0.0.20

6 files

0.0.19

6 files

0.0.18

6 files

0.0.17

6 files

0.0.16

6 files

0.0.15

6 files

0.0.14

6 files

0.0.13

6 files

0.0.12

6 files

This release

0.0.11 This release

6 files

0.0.10

6 files

0.0.9

6 files

0.0.8

6 files

0.0.7

6 files

0.0.6

6 files

0.0.5

6 files

0.0.4

6 files

0.0.3

6 files

0.0.2

6 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page