wake-rs
wake-rs is a library written in Rust for encoding/decoding Wake protocol.
Wake is a serial communication protocol highly optimized for microcontrollers. It based on SLIP protocol (https://datatracker.ietf.org/doc/html/rfc1055).

Main features
- unique start symbol
- 7-bit addressing (optional)
- CRC (8 or 16 bits)
- low overhead
The protocol doesn't support:
error correctioncompression
Frame structure:

Integrations
There are many architecture-specific implementations:
- MCS-51
- AVR
- STM32
- x86
in many languages:
- C
- C++
- C#
- Python
- Rust
Examples
- Demo - basic usage
- Serial - how to use with serial port
- Relay shield - PC <-> device communication
Quick Start
Add to your Rust project:
Create, encode and decode packet:
use ;
Build library:
Build examples:
Resources
Protocol description, libraries, and tools: http://www.leoniv.diod.club/articles/wake/wake.html
TODO
- Use this library with a microcontroller (nostd)
- Add a stream decoder (one byte per time with internal buffer)
License
Code released under the MIT License.