Skip to main content

pipeline status coverage report PyPI version

Rero is an efficient communication protocol intended for transmissions of byte frames over e.g. a serial interface or buses. It builds upon COBS which allows for a minimum encoding overhead. It is perfectly suited for MCUs with DMA support.

Did somebody asked what is it good for? Here are some qualities of Rero:

Quality How Good for
Reliable CRC check Checking integrity of frame
Robust COBS and COBSR byte stuffing Easy to resynchronize byte stream
Efficient Exploit properties of COBS and COBSR Minimum processing overhead
Scalable Customize Rero to your needs Minimize frame overhead
Bus-capable Optional address field Address frame for specific recipient

A C implementation written for STM32 MCUs is available here. It builds upon a very efficient ring buffer implementation tailored for UART interfaces, which of course utilizes DMA support for transmission and reception.

Quick start

Rero requires Python 3.5 or newer to run.

$ pip install rero

Usage

import rero

reroPacker = rero.Packer(1) 	# own address = 1

# Dummy payload
payload = bytes([1, 2, 3, 4])

msgToSend = reroPacker.pack(payload, 20) # Packing with dedicated address = 20

# msgToSend may now be sent e.g. by use of pySerial...

# Unpack received frame
for payloadRcd in reroPacker.unpack(msgToSend):
	print(payloadRcd)

Further examples are given in the docs.

Documentation

You can find the documentation at here.

Contribution

For information on how to contribute to the project, please check the Contributor's Guide.

Contact

Please use the Gitlab service desk or if you have a Gitlab account you may directly open an issue.

License

MIT License

Release files for rero 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rero 1.0.1
File Size Uploaded
rero-1.0.1.tar.gz 12.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rero 1.0.1
File Interpreter ABI Platform
rero-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 24.4 kB

Release files / rero-1.0.1.tar.gz

Download URL rero-1.0.1.tar.gz
Size 12.1 kB
Tags Source
SHA-256 checksum
How to use checksums
344b87be42f3a727ddf9801eb219e5ea869fceff185575932ec3803cc4193372
BLAKE2b-256 checksum
How to use checksums
006138d9dba12b4e7cb5222ceba113bc66f4dba99754260493a71e5eea41313b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.17 CPython/3.7.4 Linux/4.19.23-coreos-r1

Release files / rero-1.0.1-py3-none-any.whl

Download URL rero-1.0.1-py3-none-any.whl
Size 12.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
38c86aef3d414d02a2ce1f178817a6978ec28891a2fe54182a971df835d65895
BLAKE2b-256 checksum
How to use checksums
91ff45b142416cf6c4e41da72a9262e8b85597eb9df7f2ef67f90112f3915306
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/0.12.17 CPython/3.7.4 Linux/4.19.23-coreos-r1

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page