fastcatan — frozen Catan simulator
High-throughput Catan simulator (C++ core, nanobind Python bindings). Builds the
fastcatan Python package. This repo is frozen at v1.0.0 — the simulator is
stable and no longer under active development. AI / RL work lives in a separate
repository and consumes this as a pinned dependency.
Layout
| path | what |
|---|---|
src/, include/ |
C++ simulator core |
bindings/pycatan/bindings.cpp |
nanobind bindings |
python/fastcatan/ |
Python package (wraps the compiled extension) |
sim/, examples/ |
helpers, usage examples |
tests/ |
pytest + C++ fuzz/invariant tests |
CMakeLists.txt, pyproject.toml |
build (scikit-build-core) |
Install
From PyPI (prebuilt abi3 wheel, no toolchain needed, CPython 3.12+):
pip install fastcatan
Downstream projects pin an exact version: fastcatan==1.0.0.
From source (needs a C++ toolchain + CMake ≥ 3.27) — dev/editable or non-Linux:
pip install . # tunes -march=native for THIS machine (fast local build)
Publishing to PyPI
Publishing is automated: pushing a version tag (v1.0.0) runs
.github/workflows/publish.yml, which builds one abi3 wheel (nanobind
STABLE_ABI → one wheel serves 3.12/3.13/3.14) plus an sdist via
cibuildwheel and uploads through PyPI
Trusted Publishing (OIDC, no secrets). One-time setup on PyPI:
configure the trusted publisher for project fastcatan (repo + workflow
publish.yml + environment pypi).
The published wheel is built portable (-march=x86-64-v2, runs on any 2009+ CPU)
inside a manylinux_2_28 container (GCC 12+, required for C++23). Local builds
keep -march=native. Build a wheel by hand:
python -m build --wheel # native (this CPU)
python -m build --wheel -Ccmake.define.FASTCATAN_ARCH=x86-64-v2 # portable
Currently Linux x86_64 only; add macOS/Windows to the CI archs matrix later.
Test
pip install .
pytest tests/
Versioning
Frozen releases are git tags (v1.0.0, …). Bump pyproject.toml version and
tag if the simulator is ever revised; downstream projects pin an exact tag.
Release files for fastcatan 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastcatan-1.0.0.tar.gz | 82.5 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastcatan-1.0.0-cp312-abi3-musllinux_1_2_x86_64.whl | CPython 3.12 | abi3 | Linux musl 1.2+ x86-64 | Details |
| fastcatan-1.0.0-cp312-abi3-manylinux_2_28_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| fastcatan-1.0.0-cp312-abi3-macosx_11_0_arm64.whl | CPython 3.12 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 744.7 kB
Release files / fastcatan-1.0.0.tar.gz
| Download URL | fastcatan-1.0.0.tar.gz |
|---|---|
| Size | 82.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fb6063bbf9900d187f39c0fb630bab534c6e3beeee9f9f016568ed6aa1aad054
|
|
BLAKE2b-256 checksum How to use checksums |
8a947ebb35d591fdaea1c3f2cfbaa3d1360927ea84f051adb790e0c6f414b4df
|
| 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 Aug 11, 2026.
Transparency logRelease files / fastcatan-1.0.0-cp312-abi3-musllinux_1_2_x86_64.whl
| Download URL | fastcatan-1.0.0-cp312-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 355.6 kB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
5861d031761b63e8a396f59b01256e62eef65ee4afbc617c512147f5bab2657d
|
|
BLAKE2b-256 checksum How to use checksums |
29b4d71fd630f0f0388cb87b70aaffc8c2bd7b805aafc002640f55879ed5e31c
|
| 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 Aug 11, 2026.
Transparency logRelease files / fastcatan-1.0.0-cp312-abi3-manylinux_2_28_x86_64.whl
| Download URL | fastcatan-1.0.0-cp312-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 217.5 kB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
9f934259eda9c531827ed546eca9f18804a6ce995335095ce04f6c2d1367a83b
|
|
BLAKE2b-256 checksum How to use checksums |
972c7d5ae1fb81aae0d9c83b30cad1456f056ca8ca32f3c0392af6ebe5629d83
|
| 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 Aug 11, 2026.
Transparency logRelease files / fastcatan-1.0.0-cp312-abi3-macosx_11_0_arm64.whl
| Download URL | fastcatan-1.0.0-cp312-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 89.1 kB |
| Tags | CPython 3.12 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
31e387283f9b8640c47db64c43adcb92f7c62ae58a975b8cce179cd35a24ac8a
|
|
BLAKE2b-256 checksum How to use checksums |
33c1046b01906631e95f5a66adb85d6f110bda5462f34a73bc8fc8bc74e4dcd2
|
| 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 Aug 11, 2026.
Transparency log