Skip to content

RMonitor Procotol Decoder for Rust

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

bradfier/rmonitor

Folders and files

NameName
Last commit message
Last commit date
May 8, 2020
May 8, 2020
Feb 3, 2024
Feb 1, 2024
Feb 3, 2024
May 8, 2020
Feb 3, 2024
May 8, 2020
May 8, 2020
May 10, 2020

Repository files navigation

RMonitor for Rust

GHA Build Status MIT/Apache Licensed crates.io Docs

A simple, Tokio-compatible protocol decoder for RMonitor, a line based timing protocol supported by different vendors of sport timing software.

The decoder supports both:

Example

You'll need rmonitor, tokio and tokio-util in your dependencies:

rmonitor = "0.2"
tokio-util = { version = "0.3", features = ["codec"] }
tokio = { version = "0.2", features = ["full"] }

Then create your main.rs:

use rmonitor::RMonitorDecoder;
use std::error::Error;
use tokio::net::TcpStream;
use tokio::stream::StreamExt;
use tokio_util::codec::FramedRead;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    // Connect to your target RMonitor server
    let stream = TcpStream::connect("127.0.0.1:4000").await?;

    // Construct a decode with a maximum line length of 2048
    let mut reader = FramedRead::new(stream, RMonitorDecoder::new_with_max_length(2048));

    while let Ok(Some(Ok(event))) = reader.next().await {
        println!("{:?}", event);
    }

    Ok(())
}

A synchronous example is also available to show use of the decoder without pulling in a Tokio runtime.

License

Licensed under either of

at your option.

About

RMonitor Procotol Decoder for Rust

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages