logo SBA

ETD

Archivio digitale delle tesi discusse presso l’Università di Pisa

Tesi etd-01172024-142544


Tipo di tesi
Tesi di laurea magistrale
Autore
SAGRAMONI, RICCARDO
URN
etd-01172024-142544
Titolo
Rewriting a fast C-based network I/O library to evaluate performance and memory safety of the Rust programming language
Dipartimento
INGEGNERIA DELL'INFORMAZIONE
Corso di studi
COMPUTER ENGINEERING
Relatori
relatore Prof. Lettieri, Giuseppe
correlatore Prof. Procissi, Gregorio
Parole chiave
  • nethuns
  • netmap
  • safety
  • performance evaluation
  • library
  • networking
  • rust
Data inizio appello
13/02/2024
Consultabilità
Tesi non consultabile
Riassunto
Rust is a multi-paradigm, general-purpose programming language, which prioritizes performance, type safety, and fearless concurrency. At compile time, Rust is able to ensure memory and thread safety without relying on automated memory management techniques, such as garbage collection. To achieve both memory safety and prevention of data races, Rust employs a "borrow checker" that tracks the object lifetime of all references in a program during compilation. As a result, Rust is gaining substantial popularity as a replacement for C/C++ in various domains where performance and reliability are paramount, such as system programming, embedded devices, and networking.

This thesis seeks to critically evaluate the claims of high performance and memory safety associated with Rust, particularly in the context of low-level network programming. The approach involves rewriting Nethuns, a fast C-based network I/O library, using Rust.

The Rust-based Nethuns implementation is exhaustively detailed upon in this thesis, with a particular emphasis on elucidating the design choices, highlighting the primary advantages gained, and addressing the challenges encountered throughout the process.

This work concludes with a performance evaluation of the final library, complemented by an in-depth analysis of its actual safety assurances. The obtained results are positive: the Rust-based library achieves performance comparable to its C-based counterpart while guaranteeing a considerably higher level of safety at compile time.
File