#protocols #lighting #transport #controller #interface

citp

A full implementation of CITP - Controller Interface Transport Protocol

2 unstable releases

0.2.1 Oct 11, 2023
0.1.0 May 28, 2018

#816 in Network programming

MIT/Apache

85KB
1.5K SLoC

citp Build Status Crates.io Crates.io docs.rs

A pure-rust implementation of CITP aka Controller Interface Transport Protocol. CITP is an open communications protocol for the integration of visualisers, lighting consoles and media servers.

Features

This implementation aims to implement the full CITP protocol as the specification describes. The spec can be found at citp-protocol.org.

  • The protocol module describes all constants and types within the specification and provides WriteBytes and ReadBytes traits for writing and reading any of these types to and from arrays of bytes.

    Each layer of the protocol is implemented under its own protocol sub-module.

    • protocol::pinf
    • protocol::sdmx
    • protocol::fptc
    • protocol::fsel
    • protocol::finf
    • protocol::msex
    • protocol::caex
  • The net module provides an implementation of the necessary broadcasting, multicasting, UDP and TCP streams described within the protocol for communication of the protocol over a network.

  • Further Work:

    • Types for listening to and iterating over received broadcast/multicast messages.
    • Examples for demonstrating basic usage of each part of the protocol.
    • Tests that write and then read every type within the protocol to ensure correctness of the WriteToBytes and ReadFromBytes implementations.

License

Licensed under either of

at your option.

Contributions

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~165KB