This book is an introduction to building performant software we can justifiably trust. That means having sufficient data to support confidence in our code’s functionality and security. Trustworthiness is a hallmark of high assurance software.
With assurance as our driving concept, we’ll take a hands-on, project-based approach to two fundamental but often inaccessible topics in software development: systems programming and low-level software security.
You’ll learn Rust - a modern, multi-paradigm language that emphasizes speed and correctness. Most programming books teach a new language by presenting a dozen small, unrealistic programs. Not this one.
We’ll design, write, and validate a fully-featured alternative to the ordered map and set implementations in Rust’s standard library. You’ll gain a deep understanding of the Rust language by re-implementing one of its major dynamic collections, one idiomatic API at a time.
Unlike the standard version, our implementation will be:
- Maximally Safe. Upholds Rust’s strongest memory safety guarantees, for all possible executions.
- To test properties the compiler can’t prove, we’ll learn advanced program analysis techniques, including differential fuzzing and deductive verification*.
- Extremely Portable. Capable of running on every operating system, or even without one (e.g. “bare metal”).
- Our library is a hardened component. To integrate it within larger codebases, we’ll add CFFI bindings to make the Rust functions callable from other languages - including C and Python.
- Highly Available. Offers fallible APIs for handling cases that could otherwise result in a crash.
- E.g. Out-of-Memory (OOM) error - when all pre-allocated memory has been exhausted.
Read in full here:
This thread was posted by one of our members via one of our news source trackers.