This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". The cookie is used to store the user consent for the cookies in the category "Analytics". These cookies ensure basic functionalities and security features of the website, anonymously. If you're like to be notified when it's finished and a physical print is available, please sign up here.Necessary cookies are absolutely essential for the website to function properly. * = may be subject to change! This book is a work in progress. There will be no patches and there can be no failures. It must run on nearly any device, operate in the field for years on end without error, and tolerate attacker-controlled input. You need to build a data structure library to serve a mission-critical application. Under the first tranche of the 2022 Project Grants Program.Ī full list of awarded projects is available here, please check out the range of exciting work happening within the global Rust community! The development of this book (research, writing, and coding) is made possible through the generous support of: That mental model is valuable no matter what programming language you primarily use. You'll learn how to reason about software security at the leading edge. Unlike other Rust books, you won't just learn the language. Techniques you can apply to real-world code. We're interested in lightweight processes that, in the long run, enable us to ship quality code faster and spend less time patching security and reliability failures. Notice the bias toward development speed. Visually, this book covers the below topics (contrasted roughly on tradeoff of development speed and formal rigor).ĭon't worry, we'll provide clear explanations and context for each. Other tools are experimental and under active research.Ī full inventory is available in the appendix. Some of these tools are mature and used in commercial industry: We'll use cutting-edge, open-source software assurance tools to validate the code we write in this book. The State-of-the-Art in Practical Software Assurance Out-of-Memory (OOM) error - when all pre-allocated memory has been exhausted. Offers fallible APIs for handling cases that could otherwise result in a crash. To integrate it within larger codebases, we'll add CFFI bindings to make the Rust functions callable from other languages - including C and Python. Capable of running on every operating system, or even without one (e.g. To test properties the compiler can't prove, we'll learn advanced program analysis techniques, including differential fuzzing and deductive verification*.Įxtremely Portable.Upholds Rust's strongest memory safety guarantees, for all possible executions. Unlike the standard version, our implementation will be: 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. We'll design, write, and validate a fully-featured alternative to the ordered map and set implementations in Rust's standard library. Most programming books teach a new language by presenting a dozen small, unrealistic programs. You'll learn Rust - a modern, multi-paradigm language that emphasizes speed and correctness. 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. Trustworthiness is a hallmark of high assurance software. That means having sufficient data to support confidence in our code's functionality and security. This book is an introduction to building performant software we can justifiably trust.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |