Rust Essentials(Second Edition)
上QQ阅读APP看书,第一时间看更新

Where to use Rust

It is clear from the previous sections that Rust can be used in projects that would normally use C or C++. Indeed, many regard Rust as a successor to, or a replacement for, C/C++. Although Rust is designed to be a systems language, due to its richness of constructs, it has a broad range of possible applications, making it an ideal candidate for applications that fall into one or all of the following categories:

  • Client applications, like browsers
  • Low-latency, high-performance systems, like device drivers, games and signal processing
  • Highly distributed and concurrent systems, like server applications and microservices
  • Real-time and critical systems, like operating systems or kernels
  • Embedded systems (requiring a very minimal runtime footprint) or resource-constrained environments, like Raspberry Pi and Arduino, or robotics
  • Tools or services that can't support the long warmup delays common in just-in-time (JIT) compiler systems and need instantaneous startup
  • Web frameworks
  • Large-scale, high-performance, resource intensive, and complex software systems

Rust is especially suitable when code quality is important, that is, for the following:

  • Modestly-sized or larger development teams
  • Code for long-running production use
  • Code with a longer lifetime that requires regular maintenance and refactoring
  • Code for which you would normally write a lot of unit tests to safeguard