1 unstable release
0.1.0 | Oct 25, 2024 |
---|
#404 in Hardware support
Used in steami-rs
25KB
565 lines
jacdac-rs
Introduction
What is jacdac ?
Jacdac is an integrated hardware and software stack that makes it easier to connect programmable microcontrollers, sensors, actuators, and peripherals together in a client/server architecture. It also provides a bridge from the embedded world to the web browser and beyond. Key features of Jacdac are:
- a dedicated 3-wire cable and connector
- a true bus topology
- service advertisement and dynamic device discovery
- a standardized service abstraction
- a full stack that supports platforms from 8-bit MCUs to web development.
In addition to the functionality provided by common networking stacks, the Jacdac protocol specifies electrical and mechanical requirements that improve interoperability at the hardware level.
jacdac Specification https://microsoft.github.io/jacdac-docs/reference/
What is jacdac-rs
jacdac-rs is a library written entirely in Rust, with the aim of providing jacdac support for embedded development.
The library will be embedded-hal dependent where necessary, to ensure maximum interoperability.
jacdac-rs is in the early stages of development, and the api is subject to major changes between versions.
Requirements
This crate need an allocator, due to alloc::vec
usage.
Features
Available
Transport
- Decode jacdac frame from buffer (
&[u8]
) - Decode jacdac packet from buffer (
&[u8]
)
Service
- Decode transport packet to service packet
Planned
Transport
- Decode jacdac frame from Reader
- Decode jacdac packetg from Reader
- Encode jacdac frame to buffer
- Encode jacdac frame to Writer
Service
- Register all the current available service from jacdac services
General
- Add examples
Dependencies
~230KB