#web-rtc #janus #janus-gateway #async

jarust

A janus客户端SDK

18个不稳定版本 (3个破坏性更新)

0.4.0 2024年6月26日
0.3.0 2024年5月24日
0.2.9 2024年5月11日
0.2.7 2024年4月25日
0.1.4 2024年1月28日

#1259异步

Download history 76/week @ 2024-04-19 51/week @ 2024-04-26 129/week @ 2024-05-03 200/week @ 2024-05-10 24/week @ 2024-05-17 134/week @ 2024-05-24 4/week @ 2024-05-31 7/week @ 2024-06-07 5/week @ 2024-06-14 139/week @ 2024-06-21 30/week @ 2024-06-28 91/week @ 2024-07-05 107/week @ 2024-07-26 9/week @ 2024-08-02

每月116次下载
用于 jarust_plugins

MIT 许可证

76KB
2K SLoC

Jarust

Jarust的核心

它处理

  • 连接
  • 会话
  • 处理
  • 发送消息
  • 接收事件
  • 解复用

插件

查看现有插件: jarust_plugins

示例用法

use jarust::jaconfig::JaConfig;
use jarust::jaconfig::TransportType;
use jarust::japlugin::Attach;
use serde_json::json;
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://127.0.0.1:8188/ws", None, "janus"),
        TransportType::Ws,
    )
    .await?;
    let session = connection.create(10).await?;
    let (handle, mut event_receiver) = session.attach("janus.plugin.echotest").await?;

    handle
        .message(json!({
            "video": true,
            "audio": true,
        }))
        .await?;

    while let Some(event) = event_receiver.recv().await {
        tracing::info!("response: {event:#?}");
    }

    Ok(())
}

依赖项

~4.5–7.5MB
~125K SLoC