Building a binary extension
summary
Shows how to produce real binary wheels end-to-end: C++ bindings with pybind11, builds via scikit-build + CMake, packaging with PyPA build and cibuildwheel in GitHub Actions, automated updates via Dependabot. Demo wraps CLI11, runs unit tests, and produces manylinux/macOS (including universal)/Windows wheels for Python 3.7+ and uploads to PyPI. Claims ci-buildwheel now has ~600 users and 2.5 adds stable ABI and sdist→wheel builds, and the example compiles and tests successfully.
AI-written summary · about
chapters (36)
- 0:00Intro
- 1:41Is Python fast?
- 2:39Python has great performance
- 2:57dump Python
- 3:48Numba
- 4:17Make Python Faster
- 4:57Pre)compile
- 5:26What is a binary extension?
- 6:28Pure / Binary wheels
- 7:51But why compile?
- 8:32Disclamers
- 8:49But it's hard?
- 10:22Bindings / Coding
- 10:57A fork in the road
- 11:51Accessing shared libraries
- 12:33Not just a JIT
- 13:21Fast Python
- 14:01Fast not quite-Python
- 15:39Example of usage
- 16:19Many great features
- 16:41Nanobind
- 17:52Example project
- 20:25tests/test_works.py
- 20:36Build systems
- 22:40Pybind11 and setuptools
- 24:18Scikit-build plans
- 26:01setup.py
- 26:40Redistributables
- 31:02cibuildwheel tips
- 31:36pyproject. toml
- 32:30github/workflows/cd.yml (1)
- 34:13Produced files
- 34:51Think outside the box
- 36:27Quickstart: scikit-hep/cookie
- 37:51Key Takeaways
- 38:38My Projects








