udp-stream
هي مكتبة Rust التي توفر واجهة برمجة تطبيقات بسيطة للتعامل مع البيانات المتدفقة عبر بروتوكول مخطط بيانات المستخدم (UDP)، على غرار TcpStream. إنه يلخص تعقيدات العمل مع UDP، مثل التعامل مع تجزئة الحزمة وإعادة التجميع والتحكم في التدفق، مما يسهل على المطورين إرسال واستقبال تدفقات مستمرة من البيانات عبر مآخذ UDP خاصة عند استخدام بروتوكول DTLS.
يعتمد على الدفق : يوفر udp-stream
طبقة تجريد للتعامل مع حزم UDP كدفق مستمر من البيانات، وذلك باستخدام توقيع وظيفة مماثل مثل TcpStream
في مكتبة tokio
. يتيح ذلك للمطورين المطلعين على tokio
الاستفادة من معرفتهم الحالية للعمل مع UDP بطريقة مماثلة.
خفيف الوزن : يتميز udp-stream
بمساحة صغيرة ويعتمد فقط على مكتبات tokio
و bytes
، مما يجعله خفيف الوزن وسهل الاندماج في مشاريعك الحالية.
لاستخدام udp-stream
في مشروع Rust الخاص بك، ما عليك سوى إضافته كتبعية في ملف Cargo.toml
الخاص بك:
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();
}
}
لمزيد من التفاصيل حول كيفية استخدام udp-stream
، بما في ذلك خيارات التكوين، واستخدام DTLS، والاستخدام المتقدم، يرجى الرجوع إلى الأمثلة.
نرحب بالمساهمات في udp-stream
! إذا كنت ترغب في المساهمة في المكتبة، فيرجى اتباع إرشادات مجتمع Rust القياسية للمساهمة، بما في ذلك فتح الإصدارات وإرسال طلبات السحب وتقديم التعليقات.
تم ترخيص udp-stream
بموجب ترخيص MIT، الذي يسمح بالاستخدام والتعديل والتوزيع مجانًا، وفقًا للشروط والأحكام الموضحة في الترخيص.
نأمل أن يكون udp-stream
مفيدًا لمشاريعك! إذا كانت لديك أية أسئلة أو كنت بحاجة إلى مزيد من المساعدة، فلا تتردد في الاتصال بنا أو فتح مشكلة في المستودع.