Rust Programming Language
The Rust Official Documentation describes Rust as: “A language empowering everyone to build reliable and efficient software.”
Main Features
Performance
Rust is blazingly fast and memory-efficient: with no runtime or garbage collector, it can power performance-critical services, run on embedded devices, and easily integrate with other languages.Reliability
Rust’s rich type system and ownership model guarantee memory-safety and thread-safety — enabling you to eliminate many classes of bugs at compile-time.Productivity
Rust has great documentation, a friendly compiler with useful error messages, and top-notch tooling — an integrated package manager and build tool, smart multi-editor support with auto-completion and type inspections, an auto-formatter, and more.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
- Crates.io: Large package ecosystem.
- Cargo: Build tool support.
- LLVM Backend: All LLVM tools work on Rust.
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.
- Code formatting via
Rustup
provides ways to install, remove, update, select and otherwise manage these toolchains and their associated pieces.
For more details check Stack Overflow.