Skip to main content

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)

Source distribution for fastcatan 1.0.0
File Size Uploaded
fastcatan-1.0.0.tar.gz 82.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for fastcatan 1.0.0
File Interpreter ABI Platform
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 log

Release 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 log

Release 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 log

Release 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

Release history Release notifications | RSS feed

2.0.0

4 release files

1.0.2

4 release files

1.0.1

4 release files

This release

1.0.0 This release

4 release 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