Skip to content
robolibsPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

wirebit

wirebit is a Rust port of the C++ header-only wirebit library: simulated hardware communication interfaces (serial, CAN, ethernet) exchanging timed frames over shared memory, with optional bridges to real Linux interfaces (PTY / TTY, SocketCAN, TAP, TUN).

The crate ships:

  • Shared-memory transport — ShmLink / FrameRing for in-process and cross-process simulation.
  • Protocol endpoints — CanEndpoint, SerialEndpoint, EthEndpoint with the wire-level behaviours (bus-off confinement, baud pacing, MAC filtering + link up/down).
  • CAN bus hub with pluggable arbiter — FIFO, CAN priority, CSMA-CD, TDMA, master-slave.
  • Declarative topology builder — Topology → Built with take_can / take_serial / take_eth.
  • C FFI (include/wirebit.h) and Python bindings (pyo3, abi3-py39).

Development shells (Nix)

nix develop              # stable toolchain (default)
nix develop .#nightly    # stable + miri
nix develop .#python     # stable + python312 + maturin (for the
                         # `python` feature and wheel builds)

Building a wheel

nix develop .#python --command maturin build --release --features python

Outputs target/wheels/wirebit-<version>-cp39-abi3-linux_x86_64.whl.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages