Skip to content
An implementation of CITP (Controller Interface Transport Protocol) in pure Rust.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

citp Build Status

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.


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

  • 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
  • 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.


Licensed under either of

at your option.


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.

You can’t perform that action at this time.