This is a list of software and programming tools for the Rust programming language, including IDEs, compilers, libraries, verification and debugging tools, numerical and scientific computing libraries, and related projects.
Compilers
- Cranelift — code generator and JIT compiler that can be used to compile Rust through Wasmtime and experimental backends1
- LLVM2
- MRustC — alternative Rust compiler written in C++, focused on bootstrapping.3
- rustc — official Rust compiler, written in Rust and using LLVM as a backend.4
Integrated development environments and editors
- CLion / IntelliJ IDEA — with the official Rust plugin maintained by JetBrains5
- Emacs — support via rustic mode and rust-mode67
- Kate — basic Rust support via syntax highlighting and plugins
- Neovim / Vim — Rust support through plugins like rust.vim8 and coc-rust-analyzer9
- RustRover — JetBrains IDE focused on Rust development
- Visual Studio Code — Rust support via the Rust Analyzer language server10
- Zed
- Rust Development Studio - Web based IDE for Rust written in Rust 11
Package managers and build systems
- Bazel — build system with community support for Rust rules12
- Cargo — Rust package manager and build tool, included with Rust distribution.13
- Crates.io — official package registry for Rust libraries and applications14
- Rustup — toolchain installer and version manager for Rust1516
Libraries and frameworks
- Actix — actor framework and high-performance web framework17
- Diesel — ORM and query builder for Rust18
- Rayon — data parallelism library for Rust1920
- Rocket — web framework focused on type safety21
- Serde — framework for serialization and deserialization supporting JSON, YAML, TOML, and more.22
- Tokio — asynchronous runtime for Rust23
Real-time and embedded systems
- no_std Rust — core Rust programming without the standard library, for bare-metal development.24
- Rust for Embedded — Rust support for embedded systems via the Embedded Working Group2526
- RTIC — real-time concurrency framework for Cortex-M microcontrollers27
- Tock — embedded operating system written in Rust28
Numerical and scientific computing
- Linfa — machine learning framework for Rust2930
- ndarray — array and linear algebra operations3132
- nalgebra — general-purpose linear algebra library33
- Polars — DataFrame library for data analysis in Rust34
Verification, debugging, and analysis
- Clippy — linter for Rust, providing warnings for common mistakes and idioms.3536
- Miri — interpreter for Rust's mid-level intermediate representation (MIR), used for checking undefined behavior.37
- Rustfmt — formatting tool for Rust code38
- Sanitizer — Rust integration with LLVM sanitizers for memory and thread safety39
Testing frameworks
- Built-in test framework — included in the Rust compiler and Cargo4041
- Proptest — property-based testing framework for Rust4243
- QuickCheck for Rust — port of the Haskell QuickCheck property-testing library44
Documentation and code generation
- Bindgen — generates Rust FFI bindings to C libraries4546
- Cbindgen — generates C headers from Rust code4748
- rustdoc — official Rust documentation generator49
See also
See also
External links
External links
- Awesome-Rust — GitHub list of Rust software and tools
- crates.io — Rust package registry
- Official Rust documentation
- Official Rust website
- Rust on GitHub
References
References
- https://github.com/bytecodealliance/wasmtime
- https://llvm.org/
- https://github.com/thepowersgang/mrustc
- https://doc.rust-lang.org/rustc/index.html
- https://www.jetbrains.com/rust/
- https://github.com/brotzeit/rustic
- https://github.com/rust-lang/rust-mode
- https://github.com/rust-lang/rust.vim
- https://github.com/fannheyward/coc-rust-analyzer
- https://rust-analyzer.github.io/
- https://github.com/vernisaz/rust_dev_studio
- https://bazel.build/
- https://doc.rust-lang.org/cargo/
- https://crates.io/
- https://rust-lang.github.io/rustup/
- https://rustup.rs/
- https://actix.rs/
- https://diesel.rs/
- https://github.com/rayon-rs/rayon
- https://docs.rs/rayon/latest/rayon/
- https://rocket.rs/
- https://serde.rs/
- https://tokio.rs/
- https://docs.rust-embedded.org/book/intro/no-std.html
- https://docs.rust-embedded.org/
- https://github.com/rust-embedded/awesome-embedded-rust
- https://rtic.rs/
- https://www.tockos.org/
- https://github.com/rust-ml/linfa
- https://rust-ml.github.io/linfa/rustdocs/linfa/
- https://github.com/rust-ndarray/ndarray
- https://docs.rs/ndarray/latest/ndarray/
- https://docs.rs/nalgebra/latest/nalgebra/
- https://www.pola.rs/
- https://github.com/rust-lang/rust-clippy
- https://doc.rust-lang.org/clippy/
- https://github.com/rust-lang/miri
- https://github.com/rust-lang/rustfmt
- https://doc.rust-lang.org/unstable-book/compiler-flags/sanitizer.html
- https://doc.rust-lang.org/book/ch11-01-writing-tests.html
- https://doc.rust-lang.org/rust-by-example/testing/unit_testing.html
- https://altsysrq.github.io/proptest-book/
- https://docs.rs/proptest/latest/proptest/
- https://github.com/BurntSushi/quickcheck
- https://rust-lang.github.io/rust-bindgen/
- https://docs.rs/bindgen/latest/bindgen/
- https://github.com/mozilla/cbindgen
- https://docs.rs/cbindgen/latest/cbindgen/
- https://doc.rust-lang.org/rustdoc/