It is clear from the previous sections that Rust can be used in projects that normally use C or C++. Indeed, many regard Rust as a successor or a replacement of C and C++. Although Rust is designed to be a systems language, it has a broad range of possible applications due to its richness of constructs, making it an ideal candidate for applications that fall into one or all of the following categories:
Client applications, such as browsers
Low-latency, high-performance systems, such as device drivers, games, and signal processing
Highly distributed and concurrent systems, such as server applications
Real-time and critical systems, such as operating systems or kernels
Embedded systems (that require a very minimal runtime footprint) or a resource-constrained environment, such as a Raspberry Pi, Arduino, or robotics
Tools or services that can't support the long warm-up delays that are common in Just In Time (JIT) compiler systems and need instantaneous startup
Web frameworks
Large-scale, high-performance, resource intensive, and complex software systems