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 .
# or 
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.1.4.tar.gz (44.1 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.1.4-pp310-pypy310_pp73-win_amd64.whl (107.4 kB view details)

Uploaded PyPyWindows x86-64

burst_link_protocol-1.1.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (662.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

burst_link_protocol-1.1.4-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (694.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

burst_link_protocol-1.1.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl (203.1 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

burst_link_protocol-1.1.4-pp310-pypy310_pp73-macosx_10_15_x86_64.whl (206.8 kB view details)

Uploaded PyPymacOS 10.15+ x86-64

burst_link_protocol-1.1.4-cp312-abi3-win_amd64.whl (110.0 kB view details)

Uploaded CPython 3.12+Windows x86-64

burst_link_protocol-1.1.4-cp312-abi3-win32.whl (108.0 kB view details)

Uploaded CPython 3.12+Windows x86

burst_link_protocol-1.1.4-cp312-abi3-musllinux_1_2_x86_64.whl (822.7 kB view details)

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

burst_link_protocol-1.1.4-cp312-abi3-musllinux_1_2_i686.whl (842.7 kB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ i686

burst_link_protocol-1.1.4-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (659.8 kB view details)

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

burst_link_protocol-1.1.4-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (692.8 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ i686

burst_link_protocol-1.1.4-cp312-abi3-macosx_11_0_arm64.whl (209.8 kB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

burst_link_protocol-1.1.4-cp312-abi3-macosx_10_14_x86_64.whl (212.1 kB view details)

Uploaded CPython 3.12+macOS 10.14+ x86-64

burst_link_protocol-1.1.4-cp311-cp311-win_amd64.whl (118.7 kB view details)

Uploaded CPython 3.11Windows x86-64

burst_link_protocol-1.1.4-cp311-cp311-win32.whl (115.0 kB view details)

Uploaded CPython 3.11Windows x86

burst_link_protocol-1.1.4-cp311-cp311-musllinux_1_2_x86_64.whl (860.8 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

burst_link_protocol-1.1.4-cp311-cp311-musllinux_1_2_i686.whl (881.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

burst_link_protocol-1.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (698.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

burst_link_protocol-1.1.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (732.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

burst_link_protocol-1.1.4-cp311-cp311-macosx_11_0_arm64.whl (220.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

burst_link_protocol-1.1.4-cp311-cp311-macosx_10_14_x86_64.whl (226.0 kB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

burst_link_protocol-1.1.4-cp310-cp310-win_amd64.whl (116.8 kB view details)

Uploaded CPython 3.10Windows x86-64

burst_link_protocol-1.1.4-cp310-cp310-win32.whl (114.1 kB view details)

Uploaded CPython 3.10Windows x86

burst_link_protocol-1.1.4-cp310-cp310-musllinux_1_2_x86_64.whl (863.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

burst_link_protocol-1.1.4-cp310-cp310-musllinux_1_2_i686.whl (883.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

burst_link_protocol-1.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (700.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

burst_link_protocol-1.1.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (734.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

burst_link_protocol-1.1.4-cp310-cp310-macosx_11_0_arm64.whl (220.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

burst_link_protocol-1.1.4-cp310-cp310-macosx_10_14_x86_64.whl (226.0 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