Skip to main content

clasp_bridge/
lib.rs

1//! CLASP Protocol Bridges
2//!
3//! Provides bidirectional bridges between CLASP and various protocols:
4//!
5//! ## Legacy Creative Protocols
6//! - OSC (Open Sound Control)
7//! - MIDI (Musical Instrument Digital Interface)
8//! - Art-Net (Ethernet DMX)
9//! - sACN/E1.31 (Streaming ACN)
10//! - DMX-512 (via USB interfaces)
11//!
12//! ## Modern Protocols
13//! - MQTT (IoT messaging)
14//! - WebSocket (real-time bidirectional)
15//! - Socket.IO (event-based WebSocket)
16//! - HTTP/REST (request-response API)
17
18pub mod error;
19pub mod mapping;
20pub mod traits;
21pub mod transform;
22
23#[cfg(feature = "osc")]
24pub mod osc;
25
26#[cfg(feature = "midi")]
27pub mod midi;
28
29#[cfg(feature = "artnet")]
30pub mod artnet;
31
32#[cfg(feature = "dmx")]
33pub mod dmx;
34
35#[cfg(feature = "sacn")]
36pub mod sacn;
37
38#[cfg(feature = "mqtt")]
39pub mod mqtt;
40
41#[cfg(feature = "websocket")]
42pub mod websocket;
43
44#[cfg(feature = "socketio")]
45pub mod socketio;
46
47#[cfg(feature = "http")]
48pub mod http;
49
50pub use error::{BridgeError, Result};
51pub use mapping::{AddressMapping, ValueTransform};
52pub use traits::{Bridge, BridgeConfig, BridgeEvent};
53pub use transform::{Aggregator, AggregatorState, Condition, CurveType, Transform, TransformState};
54
55#[cfg(feature = "osc")]
56pub use osc::{OscBridge, OscBridgeConfig};
57
58#[cfg(feature = "midi")]
59pub use midi::{MidiBridge, MidiBridgeConfig};
60
61#[cfg(feature = "artnet")]
62pub use artnet::{ArtNetBridge, ArtNetBridgeConfig};
63
64#[cfg(feature = "dmx")]
65pub use dmx::{DmxBridge, DmxBridgeConfig, DmxInterfaceType};
66
67#[cfg(feature = "sacn")]
68pub use sacn::{SacnBridge, SacnBridgeConfig, SacnMode};
69
70#[cfg(feature = "mqtt")]
71pub use mqtt::{MqttBridge, MqttBridgeConfig};
72
73#[cfg(feature = "websocket")]
74pub use websocket::{WebSocketBridge, WebSocketBridgeConfig, WsMessageFormat, WsMode};
75
76#[cfg(feature = "socketio")]
77pub use socketio::{SocketIOBridge, SocketIOBridgeConfig};
78
79#[cfg(feature = "http")]
80pub use http::{EndpointConfig, HttpBridge, HttpBridgeConfig, HttpMethod, HttpMode};