Skip to content

Bump nanobind from 2.10.2 to 2.13.0 - #173

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/pip/nanobind-2.12.0
Open

Bump nanobind from 2.10.2 to 2.13.0#173
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/pip/nanobind-2.12.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Mar 2, 2026

Copy link
Copy Markdown
Contributor

Bumps nanobind from 2.10.2 to 2.13.0.

Changelog

Sourced from nanobind's changelog.

Version 2.13.0 (Jun 18, 2026)

This release bundles a large set of performance improvements on nanobind's critical paths. It makes object construction 1.42×-3.2× faster, accelerates function dispatch 1.2×-1.5× and accelerates exchange of ndarrays by up to 2.4×. The release also hardens nanobind against error conditions, and fixes race conditions in free-threaded Python builds.

  • Performance improvements:

    • Added the :cpp:class:nb::pooled() <pooled> class binding annotation, which maintains a per-type pool of instances to accelerate workloads that create large numbers of short-lived objects. Released objects are stashed in the pool and cheaply recycled, skipping allocation, instance registration, and locking (on free-threaded builds). A microbenchmark exercising object construction runs between 1.42× (regular Python) to 3.2× (free-threading with contention) faster. (PR [#1366](https://github.com/wjakob/nanobind/issues/1366) <https://github.com/wjakob/nanobind/pull/1366>, commit 962cdf <https://github.com/wjakob/nanobind/commit/962cdf735984166ba13bbb5c729c2fe4aaa363be>).

    • A new "medium" function dispatcher accelerates calls to functions whose arguments are merely named or carry default values (and that use neither :cpp:class:nb::args <args>/:cpp:class:nb::kwargs <kwargs> nor more than 8 arguments). Such functions previously fell back to the fully general dispatcher. Positional calls to them now run roughly 32% faster, nearly matching positional-only functions. (PR [#1370](https://github.com/wjakob/nanobind/issues/1370) <https://github.com/wjakob/nanobind/pull/1370>__).

    • A specialized fast path now accelerates simple two-argument calls such as binary operators and copy constructors. (PR [#1362](https://github.com/wjakob/nanobind/issues/1362) <https://github.com/wjakob/nanobind/pull/1362>__).

    • A careful tuning pass on the critical path of function calls and object construction led to speedups ranging from 6.2% on regular builds to 16.4% on stable ABI builds. (PR [#1374](https://github.com/wjakob/nanobind/issues/1374) <https://github.com/wjakob/nanobind/pull/1374>, with a further immortal-type optimization in commit 82f0ce <https://github.com/wjakob/nanobind/commit/82f0ce42905419979a48349883ae945017ab5803>).

    • Optimized the :cpp:class:nb::ndarray <ndarray> import and export critical path. Returning an array becomes up to ~58% faster, and consuming one up to ~21% faster. (PR [#1375](https://github.com/wjakob/nanobind/issues/1375) <https://github.com/wjakob/nanobind/pull/1375>). Separately, improved __dlpack__() keyword parsing speeds numpy.from_dlpack() by a further ~8% (PR [#1373](https://github.com/wjakob/nanobind/issues/1373) <https://github.com/wjakob/nanobind/pull/1373>).

    • Optimized the :cpp:class:nb::ndarray <ndarray> import and export critical path. Returning an array becomes up to ~58% faster, and consuming one up to ~21% faster. (PR [#1375](https://github.com/wjakob/nanobind/issues/1375) <https://github.com/wjakob/nanobind/pull/1375>__). Separately, improved __dlpack__() keyword parsing speeds

... (truncated)

Commits
  • e2dc00f v2.13.0 release
  • 6a0fa38 changelog updates
  • 148755a ndarray: support returning Apple MLX arrays (nb::ndarray\<nb::mlx>)
  • 5201b00 ndarray: exception-free argument detection and detection cleanup
  • 07b8de2 Reduce redundant Py_TYPE() calls
  • 69b9c2f Added a few more type conversions
  • e40d69f Fix Clang implicit conversion warnings, test on CI in the future
  • 2acdac6 Fast rejection of non-string/capsule objects
  • eb2414e ndarray: accept and ignore the __dlpack__ stream argument
  • 7707cca Support nb::pooled() for garbage-collected types
  • Additional commits viewable in compare view

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Mar 2, 2026
@PiotrPich2024

Copy link
Copy Markdown
Contributor

@dependabot rebase

@dependabot
dependabot Bot force-pushed the dependabot/pip/nanobind-2.12.0 branch from d70c2af to 48270cd Compare May 29, 2026 15:48
@grzanka

grzanka commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

@dependabot rebase

Bumps [nanobind](https://github.com/wjakob/nanobind) from 2.10.2 to 2.13.0.
- [Changelog](https://github.com/wjakob/nanobind/blob/master/docs/changelog.rst)
- [Commits](wjakob/nanobind@v2.10.2...v2.13.0)

---
updated-dependencies:
- dependency-name: nanobind
  dependency-version: 2.12.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot changed the title Bump nanobind from 2.10.2 to 2.12.0 Bump nanobind from 2.10.2 to 2.13.0 Jul 13, 2026
@dependabot
dependabot Bot force-pushed the dependabot/pip/nanobind-2.12.0 branch from 48270cd to 2f3efa7 Compare July 13, 2026 15:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants