Rust Programming Language

The Rust Official Documentation describes Rust as: “A language empowering everyone to build reliable and efficient software.”

Main Features

Risks of its adoption

  • Relatively young language: Rapid adoption across the industry.
  • Currently no official support for the language by any large company: Although changing and lots of companies are already invested on it.
  • Buy in into single ecosystem: Necessary independent of language.

Why Rust?

  • Low level.
  • Cross-platform.
  • Including wasm.
  • Fast.
  • Ecosystem: crates.io.
  • Tooling: cargo.
  • Foundation: LLVM.
  • High assurance software: (hacspec, crucible, sealed Rust, rustbelt, etc).
  • Community.

Companies using it

Tooling

Integration

  • Foreign Function Interface (FFI):
    • Easily usable in other languages.
    • Can easily use other C-like languages.
  • WebAssembly (WASM):
    • Native WASM support through compiler.
    • It’s just another target platform.

Knowledge Base

This section includes deeper knowledge about Rust specific functionalities.

Rust toolchain

A toolchain is a specific version of the collection of programs needed to compile a Rust application. It includes, but is not limited to:

  • The compiler, rustc.
  • The dependency manager and build tool, cargo.
  • The documentation generator, rustdoc.
  • The static and/or dynamic libraries comprising the standard library for the default platform.

There are additional components that can be installed, such as:

  • Documentation
    • The Rust Programming Language.
    • The standard library.
    • Various books and references.
  • The static and/or dynamic libraries comprising the standard library for additional platforms to cross-compile to.
  • The source code for the standard library.
  • Extra utilities:
    • Code formatting via rustfmt.
    • Extra lints via clippy.
    • Undefined behavior checking via miri.
    • Advanced editor support via rust-analyzer or the Rust Language Server.

Rustup provides ways to install, remove, update, select and otherwise manage these toolchains and their associated pieces.

For more details check Stack Overflow.