Skip to content
forked from wjakob/nanobind

nanobind: tiny and efficient C++/Python bindings

License

Notifications You must be signed in to change notification settings

oremanj/nanobind

This branch is 677 commits behind wjakob/nanobind:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9ccb980 · Apr 5, 2023
Mar 3, 2023
Mar 8, 2023
Apr 5, 2023
Jan 3, 2023
Apr 5, 2023
Apr 5, 2023
Apr 5, 2023
Nov 2, 2022
Feb 8, 2022
Feb 23, 2023
Feb 23, 2023
Feb 18, 2022
Apr 5, 2023
Mar 18, 2022
Apr 5, 2023

Repository files navigation

nanobind: tiny and efficient C++/Python bindings

Documentation Continuous Integration

nanobind logo

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 ~2-3× faster compile time, ~3× smaller binaries, and up to ~8× lower runtime overheads compared to pybind11.

Documentation

Please see the following links for tutorial and reference documentation in HTML and PDF formats.

License and attribution

All material in this repository is licensed under a three-clause BSD license.

Please use the following BibTeX template to cite nanobind in scientific discourse:

@misc{nanobind,
   author = {Wenzel Jakob},
   year = {2022},
   note = {https://github.com/wjakob/nanobind},
   title = {nanobind: tiny and efficient C++/Python bindings}
}

The nanobind logo was designed by AndoTwin Studio (high-resolution download: light, dark).

About

nanobind: tiny and efficient C++/Python bindings

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 81.3%
  • Python 15.6%
  • CMake 2.7%
  • C 0.4%