One of the most useful features of Rust is its crate ecosystem. In languages such as C/C++, it's sometimes troublesome to find the proper library to use, and then it can be difficult to actually use it. This is almost straightforward in Rust, and in this chapter, we will see some of the most interesting crates, which give us great metaprogramming primitives:
- Serde: Data serialization and deserialization support
- Nom: Zero-copy byte-level parser creation
- Lazy static: Lazily initialized static variables
- Derive builder: Derive the common builder pattern for your structures
- Failure: Easy error handling
- Log and env_logger: Logging for your software
- CLAP: Creating command-line interfaces
- Maud: Compile-time templates with huge performance
- Diesel: MySQL/MariaDB, PostgreSQL, and SQLite database management, and ORM
- Rocket: Nightly only high-performance...