nanobind is a small binding library that exposes C++ types in Python and
vice versa. It is reminiscent of
Boost.Python
and pybind11 and uses near-identical
syntax. In contrast to these existing tools, nanobind is more efficient:
bindings compile in a shorter amount of time, produce smaller binaries, and
have better runtime performance.
More concretely,
benchmarks show up
to ~4× faster compile time, ~5× smaller binaries, and ~10× lower
runtime overheads compared to pybind11. nanobind also outperforms Cython in
important metrics (3-12× binary size reduction, 1.6-4× compilation time
reduction, similar runtime performance).
Please see the following links for tutorial and reference documentation in
HTML and
PDF formats.