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.15.tar.gz (121.5 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.15-py3-none-win_amd64.whl (1.1 MB view details)

Uploaded Python 3Windows x86-64

crozier-0.0.15-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.15-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

crozier-0.0.15-py3-none-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

crozier-0.0.15-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.15.tar.gz.

File metadata

  • Download URL: crozier-0.0.15.tar.gz
  • Upload date:
  • Size: 121.5 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.15.tar.gz
Algorithm Hash digest
SHA256 fd885adea78ae6df2e3d8f102d79ac6f7acba2073d70d4eceedf3b8780b24027
MD5 72ce1b8c7b27aae24a6a12fe1956ad5d
BLAKE2b-256 416277747adfc07773c1e580b6ccb675b33296fda48f74215f1184f9ae4f58f7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: crozier-0.0.15-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.15-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 79b250caa921820e6976c1f09bcf191fe926858d5e15f2241119f8e46c59bc0c
MD5 c23ced8621a00c252300ab6004e50e12
BLAKE2b-256 96ed6f7a512dbd1967b32981c511f889c8fccc578145d30465e855b10537b891

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crozier-0.0.15-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 77589c277092225372dbfab27b249809f8f43b1880d6ae5702d8333691481923
MD5 a54efdc66856ce22b7c8b3dcd0db952f
BLAKE2b-256 df18acdbfac4966e456bbc22f315e2c036ace8e15f7752451054c1d91466f60a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crozier-0.0.15-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9bdc91289033470a722928ff1778f897cec3be5577dc0b61a6c02186a28a4fbb
MD5 b385cefbd0bb24a381a88d75ab1e2846
BLAKE2b-256 f33f8c986417fe8d12922ffecf6d870c481ea6632e52f8c73408737cbb8d42aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crozier-0.0.15-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5de9bd51c7db7cf64af52188abed86c274e3ff201222367d68dc976ef0d703c
MD5 6ab185227470ec0746030734d7958d21
BLAKE2b-256 c3f8165b1939608b1c6fce8984647a59d63233b5cccaad1b55f92d19fb8661f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for crozier-0.0.15-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 90de49664331c8743314ef14f56604a0d855527ba6af276c51c760a341f107a0
MD5 b37014477ba96dca83a8e0f4e2aeb6d0
BLAKE2b-256 c30562aee3af764e31a81e0ba8a9c7f0a409bfc7950e9040870ff5437f7739fe

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

This release

0.0.15 This release

6 files

0.0.14

6 files

0.0.13

6 files

0.0.12

6 files

0.0.11

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