nLab Rust

Rust is an efficient programming language with compile time memory safety model based on the innovative notion of ownership and borrows, small runtime, modern concurency, zero cost abstractions, both object oriented and functional programming model. It’s speed is about the speed of comparable C programs. Rust does not require garbage collector, hence it is useful for real time programming as garbage collectors periodically stall the system for order of 100 ms. It compiles both to native code (LLVM compilers are commonly used) and to WebAssembly. It is particularly useful for real time programming, systems programming, embedded systems, web programming (via WebAssembly), concurrent systems and safety critical applications including blockchain and smart contracts. It easily links to the languages in C/C++ (ABI) linking model.

  • rust-lang.org, the official rust book, reference, crates.io
  • what is rustdoc
  • Jim Blandy, Jason Orendorff, Programming Rust: fast, safe systems development, O’Reilly Media 2017
  • Steve Klabnik, Carol Nichols, The rust programming language, no starch press, xxvii+519 pp., 2018
  • Rust crashcourse Rustlang (2hr) yt
  • yandex Rust course (in Russian, А. А. Кладов) 2019-spring
  • double linked list in safe Rust github, std::collections::LinkedList, but use VectDeque and see Learn Rust With Entirely Too Many Linked Lists
  • IOKH launches Cardano Rust project cardanorust.iohkdev.io, news Feb 2018
  • Rust can also compile to RISC-V, see github/riscv-rust
  • exonom.com, doc – extensible open-source framework for creating (permissioned) blockchain applications, smart contracts replaced by supposedly more flexible notion of services (see comparision). Exonum services can be coded in Rust or Java.
  • rustsim numerical lib. and linear algebra for Rust
  • list of crates on neural networks in Rust is here
  • Hyperledger Sabre is a transaction family/processor for Wasm on Hyperledger Sawtooth blockchain framework github/hyperledger/sawtooth-sabre

Linking to C/C++ is usually done via rust-bindgen

Rust is commonly compiled either to the native code or optionally to WebAssembly.

  • Rust & WebAssembly with Nick Fitzgerald yt

Parity supports Kovan testnet for future candidate version of Ethereum which supports wasm (hence one can use Rust), see

  • Toward a brighter future for smart contracts, at troubles.md

Rust on Parity Substrate can be used for smart contracting via Ink eDSL package

Some research papers

  • Oxide: The Essence of Rust (arXiv:1903.00982)
  • RustBelt: securing the foundations of the rust programming language doi (open access)
  • B. Lamowski et al. Sandcrust: automatic sandboxing of unsafe components in Rust, doi
  • Garming Sam, Nick Cameron, Alex Potanin, Automated refactoring of rust programs, ACSW ‘17: Proceedings of the Australasian Computer Science Week Multiconference doi
  • POSTER: Rust SGX SDK: Towards Memory Safety in Intel SGX Enclave doi

Last revised on July 31, 2021 at 23:29:57. See the history of this page for a list of all contributions to it.