Simple real-time pub/sub for cyber-physical systems

Cyphal is a publish/subscribe protocol for real-time communication in decentralized cyber-physical systems. Cyphal is:

  • Simple. Implemented in a few thousand lines of straightforward code.
  • Easy. Familiar pub/sub with optional reliability, discovery, and RPC; runs anywhere.
  • Brokerless. Decentralized peer-to-peer network with automatic configuration.
  • Real-time. Predictable sub-millisecond latency over UDP/IP, CAN FD, with more transports to come.

The Cyphal Specification is open to everyone, and it will always remain this way. No licensing or approval of any kind is necessary for its implementation, distribution, or use. Reference implementations are available under the MIT license.

Usage

Pick a suitable implementation and follow its documentation to get started:

  • Cy — the reference implementation in C. Compatible with resource-constrained baremetal MCU applications as well as conventional platforms.
  • PyCyphal — the Python implementation with a simple high-level API.

Assistance is provided on the forum and chat.

Applications dependent on the older Cyphal v1.0 should use libcanard v4 (not recommended for new designs).

Please reference Cyphal in scientific or technical publications.

Adopters