rust-mdbook (unofficial PyPI package for mdBook)
This is an unofficial repackaging. It isn't affiliated with or endorsed by the mdBook maintainers or the Rust project. For mdBook itself (docs, issues, source), go to rust-lang/mdBook. Report a packaging problem (a wheel that won't install, a missing platform) here, and anything about mdBook's behavior upstream.
mdBook is a command-line tool for
building books from Markdown files. This package ships the unmodified upstream
mdbook binary inside Python wheels, so you can install it with pip or uv
and pin it in pyproject.toml along with the rest of your tools. You don't need
a Rust toolchain.
Install
pip install rust-mdbook
or as a dev dependency with uv:
uv add --dev rust-mdbook
or run it once without installing:
uvx --from rust-mdbook mdbook --version
The package is named rust-mdbook (like rust-just
for just), but the command it installs is plain mdbook, on your PATH
inside the active virtualenv. There's no Python API; the package only contains the binary.
Usage
The command is upstream's mdbook, unchanged:
mdbook init my-book
mdbook build my-book
mdbook serve my-book --open
For everything else, see the mdBook User Guide.
Versioning
The package version mirrors the upstream release tag it was built from:
| PyPI version | Built from upstream |
|---|---|
0.5.4 |
v0.5.4 |
0.5.4.post1 |
v0.5.4 (packaging-only fix) |
0.5.5 |
v0.5.5 |
A .postN release contains the same mdBook source as its base version. Only
the packaging changed. mdbook --version always prints the upstream version
(mdbook v0.5.4).
To pin the upstream version, including any packaging fixes, use a compatible
range: rust-mdbook>=0.5.4,<0.5.5.
Platforms
Prebuilt wheels:
| OS | Architectures | Notes |
|---|---|---|
| macOS | arm64, x86_64 | |
| Linux | x86_64, aarch64 | manylinux2014 (glibc ≥ 2.17) |
| Linux | x86_64, aarch64 | musllinux_1_2 (e.g. Alpine) |
| Windows | x86_64 |
On any other platform, pip falls back to the source distribution and compiles
mdBook locally. That requires a Rust toolchain at least
as new as upstream's rust-version (1.88 for mdBook 0.5.4).
How it's built
- Upstream source comes in as a git submodule (
mdBook/), pinned to the exact release tag.upstream.tomlrecords the tag and its commit SHA. Every build runsscripts/verify_upstream.py, which fails if the submodule, the recorded SHA, and the upstream tag disagree (for example, if the tag was moved). - Wheels are built with maturin in binary
mode (
bindings = "bin"), using upstream'sCargo.lockunchanged (cargo --locked) and upstream's default features. - In CI, each wheel is installed into a fresh virtualenv on its own platform,
and
mdbook --versionhas to match the pinned version. - Every GitHub Action is pinned to a full commit SHA. Releases go to PyPI through trusted publishing (OIDC), so no API tokens are involved, and come with PEP 740 attestations.
- A scheduled workflow watches for new upstream releases and opens a PR that bumps the pin. It never publishes. A maintainer reviews, merges, and starts the release by hand.
License
mdBook is licensed under the Mozilla Public License 2.0. The
LICENSE file in this repository is upstream's, copied verbatim, and it's
included in every wheel and in the sdist. This repository's packaging files are
under the same license.
As MPL-2.0 requires, the source for the binaries in these wheels is available:
it's the upstream tag recorded in upstream.toml (at
https://github.com/rust-lang/mdBook), and it's also included in this package's
sdist on PyPI.
Development
git clone --recurse-submodules https://github.com/nickagliano/rust-mdbook
cd rust-mdbook
python scripts/verify_upstream.py # check the pin
uvx maturin build --release --out dist # build a wheel for this machine
python scripts/check_dist.py dist/*.whl # install it in a fresh venv and test it
To release: run the Release workflow from master, first with
index: testpypi, then with index: pypi.
Metadata
Release files for rust-mdbook 0.5.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rust_mdbook-0.5.4.tar.gz | 962.1 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| rust_mdbook-0.5.4-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| rust_mdbook-0.5.4-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| rust_mdbook-0.5.4-py3-none-musllinux_1_2_aarch64.whl | Python 3 | none | Linux musl 1.2+ ARM64 | Details |
| rust_mdbook-0.5.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| rust_mdbook-0.5.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| rust_mdbook-0.5.4-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| rust_mdbook-0.5.4-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 34.1 MB
Release files / rust_mdbook-0.5.4.tar.gz
| Download URL | rust_mdbook-0.5.4.tar.gz |
|---|---|
| Size | 962.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7e5c6db8fbcb514a70c896355b39d596a464d9a2a2d84e088b4330855123a607
|
|
BLAKE2b-256 checksum How to use checksums |
4a95e9d7b7830ef804e22f1c21d4a7344f0cc71acef122441360d84aaa9c0448
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / rust_mdbook-0.5.4-py3-none-win_amd64.whl
| Download URL | rust_mdbook-0.5.4-py3-none-win_amd64.whl |
|---|---|
| Size | 4.7 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a36bf32c59b3e8b50bf0a8818be96360d3b371ab59d2f896c763774e7a12099d
|
|
BLAKE2b-256 checksum How to use checksums |
9fa1ac9d8f19b16318822554b96c9b1e08758a5ca1e4b177b0582fcd0c455821
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / rust_mdbook-0.5.4-py3-none-musllinux_1_2_x86_64.whl
| Download URL | rust_mdbook-0.5.4-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 5.0 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
0d2d5b47a9ffc6978ac6bc250bd8b5b82403a97f8388c97ac26374bfe67dabc9
|
|
BLAKE2b-256 checksum How to use checksums |
e2deae5f409c2a391ac7545fc5c3a00ac483cc4af341bb6ba56719932561c45c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / rust_mdbook-0.5.4-py3-none-musllinux_1_2_aarch64.whl
| Download URL | rust_mdbook-0.5.4-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 4.6 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
ca5b795c88ef2813f362171c1aa9c3ae1a444c6ffc0fdd872ff791f6a5b5eab9
|
|
BLAKE2b-256 checksum How to use checksums |
d0c74029afcc73b0835542b062e853459219b2065d39b4a92710b7240d0d4a9d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / rust_mdbook-0.5.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | rust_mdbook-0.5.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.9 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
b1ecbf2210c407dec7ce6db913f6342935443abdf9af4ffad64ccc111662cfee
|
|
BLAKE2b-256 checksum How to use checksums |
b544543f57a62f24388c00693570aec3fdd8812756830c190cec0ed3500d908b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / rust_mdbook-0.5.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | rust_mdbook-0.5.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 4.7 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
503728265885112d06cbe452fdf11a0243ec132e3ea0fa6534f80b73b4cf5451
|
|
BLAKE2b-256 checksum How to use checksums |
59d43b107a653ac13e718c0e24a462741bd26336959693408fd92d4b658c1aee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / rust_mdbook-0.5.4-py3-none-macosx_11_0_arm64.whl
| Download URL | rust_mdbook-0.5.4-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 4.5 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1266125e1b99b5cb56ee37199f927b2e244dd981c04197a72df98017c3481e18
|
|
BLAKE2b-256 checksum How to use checksums |
04d1f47d38121ab1baeb04024007ffe31fa58604909678207c2e254e49f99fef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / rust_mdbook-0.5.4-py3-none-macosx_10_12_x86_64.whl
| Download URL | rust_mdbook-0.5.4-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 4.7 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
b13f7bcd2fb5661ff996e91d2bfe126e3332b0c1866e4233ab0789aa50428c35
|
|
BLAKE2b-256 checksum How to use checksums |
bb4d1b9e7836b8319ed95b221644a21dfc76e4858c7644e5e4a4833c111626f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency log