This is a good intro to the Rust language for PL researchers. It gives the motivation, a description of the challenges of building a high performance web browser, an intro to the ownership and concurrency features of Rust, closures, algebraic data types, a sketch of compilation via monomorphization (including across package boundaries), FFI, macros and plugins.
Some of the things that it misses out (that I think PL people would appreciate) are
- a closer look at the ownership system that really explores the connection with affine types
- any discussion of the type-class derived mechanisms used both for generics (as in Haskell) and to capture which types can be freely replicated and which must be passed by reference and also which types can be passed to other threads and which must be protected.
- a closer look at unsafe Rust code (see jung:popl:2017 and jung:popl:2020 for an excellent discussion of this topic)