Rust is a new system programming language that provides memory safety and data-race freedom while offering efficiency and low-level control comparable to that of C and C++. Rust allows for safe systems programming, including use of concurrent threads with shared data. Rust’s core concepts are ownership and borrowing, which are both deeply integrated into its type-system. Higher-level features, such as dynamically-growable arrays, reference-counted data, and mutex locks, are defined in libraries, not the language; the language ensures that their use in client code is safe. Writing such client code remains convenient, thanks to type-system features like generics, inference, and associated types.
I will present the core concepts of the Rust type system, focusing especially on transfer of ownership, ensuring validity of borrowed data, and automatic resource cleanup. I will also show how different libraries provide new high-level functionality to Rust, either via safe primitives offered by the language and its standard library, or via Rust
unsafe blocks which allow access to foreign libraries and low-level bit hacking in Rust itself.
Felix Klock is a research engineer at Mozilla. He works on the development of Rust, a safe, concurrent, and practical systems language being used at Mozilla to prototype experimental browser architectures (namely Servo).
Prior to working at Mozilla, Felix worked at Adobe Systems on Tamarin, the virtual machine for the ActionScript language. He also worked at Green Hills Software on compilers for static languages (C/C++/Fortran) targeting embedded systems.
Felix is also one of the developers of Larceny, an implementation of the Scheme language that is a testbed for research on garbage collection and compiler optimizations. Felix holds a PhD in Computer Science from Northeastern University.