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
이 귀하의 프로젝트에 유용하길 바랍니다! 질문이 있거나 추가 지원이 필요한 경우, 주저하지 말고 저희에게 연락하시거나 저장소에서 문제를 열어주세요.