Versione Rust 1.95. Aggiunta di Rust à u servitore di visualizazione Mir. Analizzatore di trafficu AyaFlow in Rust.

U linguaghju di prugrammazione Rust 1.95, fundatu da u prugettu Mozilla ma avà sviluppatu sottu l'auspici di a Fundazione Rust, un'urganizazione senza scopu di lucro, hè statu publicatu. U linguaghju si cuncentra nantu à a sicurità di a memoria è furnisce strumenti per ottene un altu parallelisimu di l'esecuzione di i compiti, pur evitendu l'usu di un garbage collector è di un runtime (u runtime hè riduttu à l'inizializazione basica è a manutenzione di a biblioteca standard).

I metudi di gestione di a memoria di Rust sò cuncipiti per eliminà l'errori in a manipulazione di i puntatori è prutegge contr'à i prublemi derivanti da a gestione di a memoria di bassu livellu, cum'è l'accessu à a memoria dopu ch'ella hè stata liberata, u dereferenziamentu di i puntatori nulli, i sovraccarichi di u buffer, ecc. U prugettu sviluppa u gestore di pacchetti Cargo per distribuisce e biblioteche, facilità e compilazioni è gestisce e dipendenze. U repositoriu crates.io hè mantinutu per l'ospitu di e biblioteche.

A sicurezza di a memoria hè furnita in Rust à u tempu di compilazione attraversu a verificazione di riferimentu, u seguimentu di a pruprietà di l'ughjettu, a traccia di a vita di l'ughjettu (scopi), è a valutazione di a correttezza di l'accessu di memoria durante l'esekzione di codice. Rust furnisce ancu prutezzione contra i overflows integer, esige l'inizializazione obligatoria di i valori variabili prima di l'usu, gestisce l'errori megliu in a biblioteca standard, applica u cuncettu di referenze immutabili è variabili per difettu, offre una forte tipografia statica per minimizzà l'errori lògichi.

Innuvazioni principali:

  • Aghjunta a macro "cfg_select!", chì pò esse aduprata invece di u pacchettu "cfg-if" per gestisce parechje cundizioni di compilazione in u stile di un bloccu "match", senza definisce una catena di cundiziunali cù a custruzzione "#[cfg]". cfg_select! { unix => { fn foo() { /* unix */ } } target_pointer_width = "32" => { fn foo() { /* non-unix, 32-bit */ } } _ => { fn foo() { /* micca unix è micca 32-bit */ } } }
  • A capacità di specificà espressioni "if let" in blocchi "match" per creà currispundenza di mudelli cundiziunali hè stata stabilizzata. Prima, u supportu per specificà parechje espressioni "let" cù l'operatore "&&" era stabilizatu per i blocchi "if" è "while". match value { Some(x) if let Ok(y) = compute(x) => { println!("{}, {}", x, y); } _ => {} }
  • Supportu di l'assemblatore in linea stabilizatu per l'architetture PowerPC è PowerPC64.
  • Una nova parte di l'API hè stata trasferita à a categuria di stabile, cumprese i metudi è l'implementazione di i tratti sò stati stabilizzati:
    • ForseUninit<[T; N]>: Da<[ForseUninit ; N]>
    • ForseUninit<[T; N]>: AsRef<[ForseUninit ; N]>
    • ForseUninit<[T; N]>: AsRef<[ForseUninit ]>
    • ForseUninit<[T; N]>: AsMut<[ForseUninit ; N]>
    • ForseUninit<[T; N]>: AsMut<[ForseUninit ]>
    • [ForseUninit] ; N]: Da
    • Cella<[T; N]>: AsRef<[Cella ; N]>
    • Cella<[T; N]>: AsRef<[Cella ]>
    • Cella<[T]>: AsRef<[Cella ]>
    • bool: TryFrom<{integer}>
    • AtomicPtr::aghjurnamentu
    • AtomicPtr::try_update
    • AtomicBool::aghjurnamentu
    • AtomicBool::try_update
    • AtomicIn::aghjurnamentu
    • AtomicIn::try_update
    • AtomicUn::aghjurnamentu
    • AtomicUn::try_update
    • cfg_select!
    • core di u mod::range
    • core::range::RangeInclusive
    • core::range::RangeInclusiveIter
    • core::hint::cold_path
    • <*const T>::as_ref_unchecked
    • <*mut T>::as_ref_unchecked
    • <*mut T>::as_mut_unchecked
    • Vec::push_mut
    • Vec::insert_mut
    • VecDeque::push_front_mut
    • VecDeque::push_back_mut
    • VecDeque::insert_mut
    • ListaLigata::push_front_mut
    • LinkedList::push_back_mut
    • Layout::dangling_ptr
    • Layout::repeat
    • Layout::repeat_packed
    • Layout::extend_packed
  • U signu "const" hè usatu in funzioni:
    • fmt::from_fn
    • ControlFlow::is_break
    • ControlFlow::is_continue
  • In e versioni stabili di u kit di strumenti, u supportu per passà e specificazioni di a piattaforma di destinazione nativa à u compilatore hè statu eliminatu.
  • E piattaforme di destinazione powerpc64-unknown-linux-musl, aarch64-apple-tvos, aarch64-apple-tvos-sim, aarch64-apple-watchos, aarch64-apple-watchos-sim, aarch64-apple-visionos, è aarch64-apple-visionos-sim sò state spostate à u livellu di supportu 2, chì include una garanzia di compilazione ma nisuna garanzia di successu di a suite di test.

Inoltre, vulemu mette in risaltu i prughjetti è l'eventi annunziati di recente in relazione à Rust:

  • Canonical hà introduttu u servitore di visualizazione Mir 2.26, chì furnisce un inseme di biblioteche per creà immagini cumposte. servitori Basatu annantu à u protocolu Wayland è incorporendu a funziunalità tipica di i gestori di finestre è di i servitori di visualizazione, Mir hè adupratu in prughjetti cum'è u gestore di cumpusizione Miracle, una shell di chioscu web, è Ubuntu Ambiente d'utilizatore Frame è Miriway.

    A nova versione hè nutata per l'aghjunta di a capacità di sviluppà cumpunenti in Rust. Un sottosistema di gestione di input alternativu, evdev-rs, hè statu implementatu in Rust, è u travagliu hè cuminciatu nantu à un frontend basatu annantu à Rust, wayland-rs, per Wayland. I cambiamenti micca ligati à Rust in Mir includenu u supportu per i protocolli Wayland ext_image_copy_capture_v1 è input-triggers.

  • A prima versione di l'analizatore di trafficu ayaFlow, scritta in Rust è utilizendu u sottosistema di u kernel, hè stata publicata. Linux eBPF per intercettà pacchetti di rete (IPv4/TCP/UDP) è frame Ethernet cù un impattu minimu nantu à e prestazioni. Supporta l'ispezione approfondita di i protocolli di livellu d'applicazione (L7), cum'è l'estrazione di query TLS SNI è DNS quandu si analizza u trafficu criptatu. U sistema mantene una tabella di u statu attuale di cunnessione in furmatu DashMap, memorizza a storia in SQLite è restituisce statistiche via una API REST à Prometheus.
  • A capacità di creà applicazioni multithread in u linguaghju Rust aduprendu funzioni std::thread è eseguite da u latu GPU hè stata implementata.

Source: opennet.ru

Cumprate un hosting affidabile per i siti cù prutezzione DDoS, servitori VPS VDS 🔥 Cumprate un hosting di siti web affidabile cù prutezzione DDoS, servitori VPS VDS | ProHoster