udp-stream
、TcpStream と同様に、ユーザー データグラム プロトコル (UDP) 経由でストリーミング データを処理するためのシンプルな API を提供する Rust ライブラリです。これにより、パケットの断片化、再構成、フロー制御の処理など、UDP の操作の複雑さが抽象化され、特に DTLS プロトコルを使用する場合に、開発者が UDP ソケットを介してデータの連続ストリームを簡単に送受信できるようになります。
ストリームベース: udp-stream
tokio
ライブラリのTcpStream
と同様の関数シグネチャを使用して、UDP パケットをデータの連続ストリームとして処理するための抽象化レイヤーを提供します。これにより、 tokio
に精通した開発者は、既存の知識を活用して、同様の方法で UDP を操作できるようになります。
軽量: udp-stream
フットプリントが小さく、 tokio
ライブラリとbytes
ライブラリのみに依存するため、軽量で既存のプロジェクトに簡単に統合できます。
Rust プロジェクトでudp-stream
使用するには、それをCargo.toml
ファイルに依存関係として追加するだけです。
トムル
udp-stream = "0.0.12"
次に、ライブラリを Rust コードにインポートして使用できます。
さび
use std::{net::SocketAddr, str::FromStr};
use tokio::io::{AsyncReadExt, AsyncWriteExt};
use udp_stream::UdpStream;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let mut stream = UdpStream::connect(SocketAddr::from_str("127.0.0.1:8080")?).await?;
println!("Ready to Connected to {}", &stream.peer_addr()?);
let mut buffer = String::new();
loop {
std::io::stdin().read_line(&mut buffer)?;
stream.write_all(buffer.as_bytes()).await?;
let mut buf = vec![0u8; 1024];
let n = stream.read(&mut buf).await?;
print!("-> {}", String::from_utf8_lossy(&buf[..n]));
buffer.clear();
}
}
構成オプション、DTLS での使用、高度な使用法など、 udp-stream
使用方法の詳細については、例を参照してください。
udp-stream
への貢献は大歓迎です。ライブラリに貢献したい場合は、イシューのオープン、プルリクエストの送信、フィードバックの提供など、標準の Rust コミュニティの貢献ガイドラインに従ってください。
udp-stream
MIT ライセンスに基づいてライセンス供与されており、ライセンスに記載されている条件に従って自由に使用、変更、配布することができます。
udp-stream
あなたのプロジェクトに役立つことを願っています。ご質問がある場合、またはさらにサポートが必要な場合は、お気軽にお問い合わせいただくか、リポジトリで問題を開いてください。