NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2098 most downloaded on PyPI
Tools for converting bluetooth data and packets
Last release 1 months ago
30 Aug 2026
Release timing varies
gaps range from 9 days to 7 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
5 versions withdrawn
withdrawn after publishing
4 years old
79 releases · first in 2022
One column per quarter.
This release is published under the Apache-2.0 License.
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.23...v1.29.24
This release is published under the Apache-2.0 License.
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.22...v1.29.23
This release is published under the Apache-2.0 License.
This release is published under the Apache-2.0 License.
build: Drop the c23 flag when the compiler rejects [[maybe_unused]] (#317, 545bd8b)
build: Stop requiring C23 so armv7l wheels build again (#301, 2286272)
ci: Bump the github-actions group across 1 directory with 11 updates (#302, a15ff5d)
ci: Bump the github-actions group with 2 updates (#312, 0f03ff4)
deps: Bump cryptography from 48.0.0 to 50.0.0 (#313, 611c8c3)
lint: Pin the ruff rule selection and take ruff 0.16 (#309, 77ae928)
Detailed Changes: v1.29.21...v1.29.22
This release is published under the Apache-2.0 License.
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.20...v1.29.21
This release is published under the Apache-2.0 License.
This release is published under the Apache-2.0 License.
ci: Restore contents:write so dependabot auto-merge works (#300, 6da1e60)
utils: Accept unseparated address form in short_address (#289, f0ec3ce)
Detailed Changes: v1.29.19...v1.29.20
This release is published under the Apache-2.0 License.
This release is published under the Apache-2.0 License.
ci: Bump the github-actions group with 4 updates (#283, de80a5d)
deps-dev: Bump pytest-codspeed from 5.0.2 to 5.0.3 (#281, b303587)
deps-dev: Bump starlette from 0.49.1 to 1.0.1 in the pip group across 1 directory (#284, 51316f3)
gap: Add constructive round-trip fuzzer for parser output (#285, 64ad8b1)
privacy: Cover non-zero IRK, cipher reuse, RPA address-type gate (#286, be29976)
Detailed Changes: v1.29.18...v1.29.19
This release is published under the Apache-2.0 License.
This release is published under the Apache-2.0 License.
distance: Replace min() with inline ternary in calculate_distance_meters (#276, 35d82c9)
gap: Fast-skip FLAGS AD type before elif dispatch (#277, 8be4db8)
gap: Route parse_advertisement_data misses through bytes cache (#275, 7c2a1e2)
bench: Mirror tuple parse benches into pytest-benchmark suite (#279, 4439e0e)
gap: Cover local-name precedence between SHORT and COMPLETE (#278, 6fdba53)
Detailed Changes: v1.29.17...v1.29.18
This release is published under the Apache-2.0 License.
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.16...v1.29.17
This release is published under the Apache-2.0 License.
This release is published under the Apache-2.0 License.
Add benchmark coverage for resolve_private_address (#268, a88e0ed)
bench: Cover _uint128_bytes_as_uuid cached and uncached paths (#272, 222c7e9)
bench: Cover _uint16/_uint32_int_as_uuid and short_address (#270, f628b11)
bench: Cover calculate_distance_meters close, far, zero branches (#274, 944d4e4)
bench: Cover parse_advertisement_data bytes cache fallthrough (#271, a24374b)
Detailed Changes: v1.29.15...v1.29.16
This release is published under the Apache-2.0 License.
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.14...v1.29.15
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
bench: Add newest_manufacturer_data benchmarks (#260, 4070fa2)
bench: Cover parse_advertisement_data_tuple bytes cache fallthrough (#262, 178b936)
Detailed Changes: v1.29.13...v1.29.14
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.12...v1.29.13
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.11...v1.29.12
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.10...v1.29.11
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.9...v1.29.10
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.8...v1.29.9
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.7...v1.29.8
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.6...v1.29.7
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.5...v1.29.6
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.4...v1.29.5
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.29.3...v1.29.4
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
gap: Iterate 128-bit service UUID lists, skip malformed lengths (#226, 6bea1ea)
gap: Require exactly one signed byte for TX Power Level (#227, 259fe73)
release: Pass release App token to actions/checkout as well as PSR (#229, fab7f20)
release: Use release-bot GitHub App token for PSR (#228, 63a7e2c)
Detailed Changes: v1.29.2...v1.29.3
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
deps: Bump cryptography from 46.0.7 to 48.0.0 (#217, fc2abe3)
gap,utils: Drop stale .pxd declarations and align argument names (#223, cfabda6)
Detailed Changes: v1.29.1...v1.29.2
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Handle manufacturer ID 0 in newest_manufacturer_data (#219, 8fca6ff)
Render gap.py invalid-AD debug log without raising TypeError (#220, c960e7c)
Detailed Changes: v1.29.0...v1.29.1
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
ci: Bump the github-actions group across 1 directory with 3 updates (#199, 0caeea6)
ci: Bump the github-actions group with 2 updates (#214, 7f1f372)
ci: Bump the github-actions group with 3 updates (#207, ce53641)
ci: Bump the github-actions group with 3 updates (#192, 99ba267)
ci: Bump the github-actions group with 3 updates (#188, 4d3bcf7)
ci: Bump the github-actions group with 4 updates (#182, 736de21)
deps: Bump cryptography from 46.0.3 to 46.0.5 (#198, 4f39bb6)
deps: Bump cryptography from 46.0.5 to 46.0.7 (#208, cdf6f4c)
deps: Bump sphinx-rtd-theme from 3.0.2 to 3.1.0 (#193, c9bcb03)
deps: Bump urllib3 from 2.5.0 to 2.6.0 in the pip group across 1 directory (#189, 27b1121)
deps-dev: Bump furo from 2025.9.25 to 2025.12.19 (#191, 7a74ee9)
deps-dev: Bump pytest-benchmark from 5.1.0 to 5.2.0 (#183, 6bdf9b9)
deps-dev: Bump pytest-benchmark from 5.2.0 to 5.2.3 (#185, 7bf5546)
deps-dev: Bump pytest-codspeed from 4.2.0 to 4.3.0 (#197, 2c971ba)
deps-dev: Bump pytest-codspeed from 4.3.0 to 4.4.0 (#210, 8ff0db5)
deps-dev: Bump pytest-codspeed from 4.4.0 to 4.5.0 (#215, 6c02b3b)
deps-dev: Bump pytest-cov from 7.0.0 to 7.1.0 (#205, c530380)
deps-dev: Bump starlette from 0.47.2 to 0.49.1 in the pip group across 1 directory (#181, 2bf6d1e)
Detailed Changes: v1.28.4...v1.29.0
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
deps: Bump cryptography from 46.0.2 to 46.0.3 (#177, c65b433)
deps-dev: Bump pytest-codspeed from 4.0.0 to 4.2.0 (#178, 3b48d1b)
Detailed Changes: v1.28.3...v1.28.4
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
ci: Bump the github-actions group across 1 directory with 8 updates (#173, a314c40)
deps: Bump cryptography from 45.0.4 to 46.0.1 (#168, 9767a2e)
deps: Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 in /.github/workflows in the github_actions group across 1 directory (#163, a061e9e)
deps-dev: Bump furo from 2024.8.6 to 2025.9.25 (#169, 94a2884)
deps-dev: Bump pytest-codspeed from 3.2.0 to 4.0.0 (#159, 281d771)
deps-dev: Bump pytest-cov from 6.2.1 to 7.0.0 (#167, 96b8e8d)
deps-dev: Bump starlette from 0.46.1 to 0.47.2 in the pip group across 1 directory (#172, 20e8810)
Detailed Changes: v1.28.2...v1.28.3
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
ci: Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 in the github-actions group (#142, 68fc83f)
deps: Bump cryptography from 44.0.2 to 44.0.3 (#143, 94532d9)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Detailed Changes: v1.28.1...v1.28.2
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.28.0...v1.28.1
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
updates:
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Detailed Changes: v1.27.0...v1.28.0
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.26.5...v1.27.0
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.26.4...v1.26.5
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.26.3...v1.26.4
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
chore(ci): bump pypa/cibuildwheel in the github-actions group
Bumps the github-actions group with 1 update: pypa/cibuildwheel.
Updates pypa/cibuildwheel from 2.23.0 to 2.23.2 - Release notes - Changelog - Commits
--- updated-dependencies: - dependency-name: pypa/cibuildwheel dependency-version: 2.23.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: github-actions ...
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
updates:
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Detailed Changes: v1.26.2...v1.26.3
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.26.1...v1.26.2
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
fixes #123
This one churns quite a bit and from how often its called, its a drain on performance having it so small.
Updating coverage (7.6.10 -> 7.6.12)
Detailed Changes: v1.26.0...v1.26.1
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.25.1...v1.26.0
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.25.0...v1.25.1
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.24.1...v1.25.0
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
Detailed Changes: v1.24.0...v1.24.1
_This release is published under the Apache-2.0 License._
This release is published under the Apache-2.0 License.
ci: Bump python-semantic-release/python-semantic-release from 9.17.0 to 9.21.0 in the github-actions group (#113, bbcc3b3)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
updates:
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Reduce size of objects
Detailed Changes: v1.23.4...v1.24.0
Update poetry to v2 + add license to metadata (#110, `9cce169`)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Detailed Changes: v1.23.3...v1.23.4
Migrate to trusted publishing (#108, `38023b0`)
Improve cache performance (#99) (`0dcf7ff`)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Migrate benchmarks to use Python 3.13 (#95) (`949684e`)
Add aarch64 wheels (#94) (`88d134b`)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps sphinx from 6.2.1 to 7.4.7. - Release notes - Changelog - Commits
--- updated-dependencies: - dependency-name: sphinx dependency-type: direct:production
update-type: version-update:semver-major ...
Signed-off-by: dependabot[bot] support@github.com
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Python 3.13 support (#57) (`468014e`)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Create dependabot.yml
(f292e9a)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Speed up int_to_bluetooth_address C implementation (#52) (`7d46575`)
updates: - github.com/commitizen-tools/commitizen: v2.28.0 → v3.27.0 - github.com/pre-commit/pre-commit-hooks: v4.3.0 → v4.6.0 - github.com/pre-commit/mirrors-prettier: v2.7.1 → v4.0.0-alpha.8 - github.com/asottile/pyupgrade: v2.37.1 → v3.16.0 - github.com/PyCQA/isort: 5.12.0 → 5.13.2
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Wheel builds on macos (#44) (`07f423b`)
Build cibuildwheel (#43) (`fc8c1a1`)
Fix license classifier (#42) (`71d54c3`)
Speed up to gap parser (#41) (`595c65a`)
Add mac_to_int util (#40) (`57aebfb`)
Speed up int_to_bluetooth_address (#39) (`ac354ae`)
Add cython monotonic_time_coarse implementation (#38) (`ae3abb8`)
Improve performance of gap parser (#37) (`05ea718`)
Speed up gap parser with a memory view (#35) (`35e132f`)
Update cibuildwheel to build on final cpython release (#33) (`46781c1`)
Small speedups to the gap parser (#30) (`87c0fcc`)
Add helper for resolving a private address using an identity key (#29) (`b5e13cc`)
Your coding agent can read these notes before it upgrades. Set up the MCP server →