Expand description
§Ember+ Protocol Implementation for Rust
A complete implementation of Lawo’s Ember+ control protocol.
Ember+ is a control protocol used in broadcast and professional audio equipment, providing a tree-based data structure for parameters, nodes, functions, and matrices.
§Features
- S101 Framing: Transport layer protocol for message framing
- BER Codec: ASN.1 Basic Encoding Rules implementation
- Glow DTD: Complete Ember+ schema type definitions
- Client (Consumer): Connect to Ember+ providers
- Server (Provider): Host an Ember+ tree for consumers
- Async/Await: Built on Tokio for async networking
§Quick Start
§Client Example
use ember_plus::{EmberClient, Result};
#[tokio::main]
async fn main() -> Result<()> {
let mut client = EmberClient::connect("192.168.1.100:9000").await?;
// Get the root directory
let tree = client.get_directory().await?;
// Get element by path
let node = client.get_element_by_path("0.1.2").await?;
Ok(())
}§Server Example
use ember_plus::{EmberServer, EmberValue, Result};
use ember_plus::tree::TreeNode;
#[tokio::main]
async fn main() -> Result<()> {
let mut server = EmberServer::bind("0.0.0.0:9000").await?;
// Build your tree
let root = TreeNode::new_node(0);
server.init(root).await;
// Run the server
server.run().await?;
Ok(())
}Re-exports§
pub use error::Error;pub use error::Result;pub use client::EmberClient;pub use server::EmberServer;pub use types::*;pub use tree::*;
Modules§
- ber
- BER (Basic Encoding Rules) codec for ASN.1.
- client
- Ember+ client (consumer) implementation.
- codec
- Glow codec for encoding and decoding Ember+ messages.
- error
- Error types for the Ember+ library.
- glow
- Glow DTD (Document Type Definition) types for Ember+.
- s101
- S101 framing protocol implementation.
- server
- Ember+ server (provider) implementation.
- tree
- Ember+ tree data structures.
- types
- Common types re-exported for convenience.