• Stars
    star
    2,280
  • Rank 20,199 (Top 0.4 %)
  • Language
    C++
  • License
    BSD 3-Clause "New...
  • Created almost 3 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

nanobind: tiny and efficient C++/Python bindings

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 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).

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).

More Repositories

1

instant-meshes

Interactive field-aligned mesh generator
C++
5,093
star
2

nanogui

Minimalistic GUI library for OpenGL
C++
4,645
star
3

nori

Nori: an educational ray tracer
C++
837
star
4

tbb

Intel TBB with CMake build system
C++
363
star
5

filesystem

A tiny self-contained path manipulation library for C++
C++
243
star
6

layerlab

The layer laboratory
C++
90
star
7

nanobind_example

A nanobind example project
CMake
89
star
8

hdrmerge

Scientific RAW to HDR merging tool
C++
79
star
9

pcg32

Tiny self-contained C++ version of the PCG32 pseudorandom number generator
C++
70
star
10

dset

Lock-free parallel disjoint set data structure (aka UNION-FIND) with path compression and union by rank
C++
58
star
11

libftdi

FTDI USB driver (with improved CMake buld system)
C
26
star
12

term-tools

term-tools
Shell
14
star
13

pss

Parallel Stable Sort
C++
13
star
14

nori-old

C++
13
star
15

hypothesis

A collection of quantile and quadrature routines for Z, Chi^2, and Student's T hypothesis tests
C++
10
star
16

ek_python_test

Enoki + pybind11 example project
CMake
9
star
17

psum

CS3218 Lecture 5: Processor Architecture & Efficiency β€” Benchmark problem
Jupyter Notebook
6
star
18

nori-very-old

Archive of last year's Nori base code & assignment web page
C++
5
star
19

typing_repro

CMake
5
star
20

wjakob.vim

Wenzel's VIM snippets
Vim Script
3
star
21

wjakob.nvim

Personal neovim tweaks
Scheme
3
star
22

inheritance_issue_3

C
2
star
23

pytest_issue

C
2
star
24

pypy_issues

C
2
star
25

vectorcall_issue

C
2
star
26

inheritance_issue

Demonstration of a Python inheritance-related issue
C
1
star
27

pypy_issue_getset_doc

C
1
star
28

inheritance_issue_2

C
1
star