Skip to main content

Binary Utility for Reliable Stream Transfer (BURST) is a library for encoding and decoding binary data streams into and from a byte stream.

Project description

BURST link protocol

Binary Utility for Reliable Stream Transfer (BURST) is a cross-platform library that provides a robust link layer protocol for transmitting binary data over streams (e.g. UART). It ensures data integrity by applying a 16-bit checksum and utilizes COBS (Consistent Overhead Byte Stuffing) encoding to format packets efficiently.

Features

  • Multi-language Support: Seamless integration with Python, C, and C++ projects.
  • Reliable Transmission: 16-bit checksum ensures error detection.
  • Efficient Encoding: Uses COBS encoding to convert data into a stream-friendly format.

Design

The following diagram illustrates the data flow within the BURST protocol:

design

Installation

Prebuilt Wheels

Prebuilt wheels are available for Windows, Linux and MacOS, they can be installed using pip:

pip install burst-link-protocol

From Source

Note: You need a valid C++ compiler and Python 3.7+ installed on your system.

Basic installation

uv pip install --reinstall -e .

Fast build

uv pip install --reinstall --no-build-isolation -ve .

Auto rebuild on run

uv pip install --reinstall --no-build-isolation -Ceditable.rebuild=true -ve .
pip install --no-build-isolation -Ceditable.rebuild=true -ve .

Python Stub files generation

They are generated automatically buy can also be generated

python -m nanobind.stubgen -m nanobind_example_ext

Test

pytest test

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

burst_link_protocol-1.0.4.tar.gz (40.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

burst_link_protocol-1.0.4-pp310-pypy310_pp73-win_amd64.whl (110.3 kB view details)

Uploaded PyPyWindows x86-64

burst_link_protocol-1.0.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (694.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

burst_link_protocol-1.0.4-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (718.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

burst_link_protocol-1.0.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl (193.2 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

burst_link_protocol-1.0.4-pp310-pypy310_pp73-macosx_10_15_x86_64.whl (196.8 kB view details)

Uploaded PyPymacOS 10.15+ x86-64

burst_link_protocol-1.0.4-cp312-abi3-win_amd64.whl (113.3 kB view details)

Uploaded CPython 3.12+Windows x86-64

burst_link_protocol-1.0.4-cp312-abi3-win32.whl (108.3 kB view details)

Uploaded CPython 3.12+Windows x86

burst_link_protocol-1.0.4-cp312-abi3-musllinux_1_2_x86_64.whl (853.7 kB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ x86-64

burst_link_protocol-1.0.4-cp312-abi3-musllinux_1_2_i686.whl (866.7 kB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ i686

burst_link_protocol-1.0.4-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (691.9 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ x86-64

burst_link_protocol-1.0.4-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (717.9 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ i686

burst_link_protocol-1.0.4-cp312-abi3-macosx_11_0_arm64.whl (199.1 kB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

burst_link_protocol-1.0.4-cp312-abi3-macosx_10_14_x86_64.whl (202.7 kB view details)

Uploaded CPython 3.12+macOS 10.14+ x86-64

burst_link_protocol-1.0.4-cp311-cp311-win_amd64.whl (121.4 kB view details)

Uploaded CPython 3.11Windows x86-64

burst_link_protocol-1.0.4-cp311-cp311-win32.whl (115.7 kB view details)

Uploaded CPython 3.11Windows x86

burst_link_protocol-1.0.4-cp311-cp311-musllinux_1_2_x86_64.whl (891.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

burst_link_protocol-1.0.4-cp311-cp311-musllinux_1_2_i686.whl (903.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

burst_link_protocol-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (727.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

burst_link_protocol-1.0.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (757.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

burst_link_protocol-1.0.4-cp311-cp311-macosx_11_0_arm64.whl (212.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

burst_link_protocol-1.0.4-cp311-cp311-macosx_10_14_x86_64.whl (215.1 kB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

burst_link_protocol-1.0.4-cp310-cp310-win_amd64.whl (119.5 kB view details)

Uploaded CPython 3.10Windows x86-64

burst_link_protocol-1.0.4-cp310-cp310-win32.whl (114.2 kB view details)

Uploaded CPython 3.10Windows x86

burst_link_protocol-1.0.4-cp310-cp310-musllinux_1_2_x86_64.whl (892.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

burst_link_protocol-1.0.4-cp310-cp310-musllinux_1_2_i686.whl (905.6 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

burst_link_protocol-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (729.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

burst_link_protocol-1.0.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (758.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

burst_link_protocol-1.0.4-cp310-cp310-macosx_11_0_arm64.whl (212.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

burst_link_protocol-1.0.4-cp310-cp310-macosx_10_14_x86_64.whl (215.1 kB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page