14 releases

new 0.2.7 Apr 25, 2024
0.2.6 Apr 7, 2024
0.2.4 Feb 28, 2024
0.1.5 Feb 2, 2024
0.1.4 Jan 28, 2024

#1502 in Asynchronous

Download history 10/week @ 2023-12-30 7/week @ 2024-01-20 8/week @ 2024-01-27 129/week @ 2024-02-10 17/week @ 2024-02-17 387/week @ 2024-02-24 44/week @ 2024-03-02 83/week @ 2024-03-09 7/week @ 2024-03-16 154/week @ 2024-03-30 141/week @ 2024-04-06 10/week @ 2024-04-13

305 downloads per month

MIT license

93KB
2.5K SLoC

Jarust Plugins

A list of predefined plugins.

Current plugins:

  • Echo test
  • Audio bridge
  • Video room

EchoTest Example

use jarust::jaconfig::JaConfig;
use jarust::jaconfig::TransportType;
use jarust_plugins::echotest::events::EchoTestPluginEvent;
use jarust_plugins::echotest::messages::EchoTestStartMsg;
use jarust_plugins::echotest::EchoTest;
use tracing_subscriber::EnvFilter;

#[tokio::main(flavor = "current_thread")]
async fn main() -> anyhow::Result<()> {
    tracing_subscriber::fmt()
        .with_env_filter(EnvFilter::from_default_env().add_directive("jarust=trace".parse()?))
        .init();

    let mut connection = jarust::connect(
        JaConfig::new("ws://localhost:8188/ws", None, "janus"),
        TransportType::Ws,
    )
    .await?;
    let session = connection.create(10).await?;
    let (handle, mut event_receiver, ..) = session.attach_echo_test().await?;

    handle
        .start(EchoTestStartMsg {
            audio: true,
            video: true,
            ..Default::default()
        })
        .await?;

    while let Some(event) = event_receiver.recv().await {
        match event {
            EchoTestPluginEvent::Result { result, .. } => {
                tracing::info!("result: {result}");
            }
        }
    }

    Ok(())
}

AudioBridge Example

use jarust::jaconfig::JaConfig;
use jarust::jaconfig::TransportType;
use jarust_plugins::audio_bridge::AudioBridge;
use tracing_subscriber::EnvFilter;

#[tokio::main(flavor = "current_thread")]
async fn main() -> anyhow::Result<()> {
    tracing_subscriber::fmt()
        .with_env_filter(EnvFilter::from_default_env().add_directive("jarust=trace".parse()?))
        .init();

    let mut connection = jarust::connect(
        JaConfig::new("ws://localhost:8188/ws", None, "janus"),
        TransportType::Ws,
    )
    .await?;
    let session = connection.create(10).await?;
    let (handle, ..) = session.attach_audio_bridge().await?;

    let result = handle.list().await?;
    tracing::info!("Rooms {:#?}", result);

    Ok(())
}

Dependencies

~5–7.5MB
~130K SLoC