cfc
The purpose of this library is to provide a minimal list of currated crates which enhance the std library. In addition, most or all crates in this library should:
- Be usable to most or all users of the library.
- Provide key functionality.
- Be well-tested and reliable.
- Be well-documented.
- Have a clean, understandable interface.
If a new crate proves to fit those conditions better than an existing crate, it should be considered as a possible replacement.
As this library is a moving target, its version stability should not be relied upon. If you wish to have a specific set of versions, consider linking to a specific commit (TODO: there are no releases yet).
Justifications
- autocfg: Enhanced ability to configure a program at the pre-compilation stage.
- cfg-if: Enhanced ability to configure a program at compile-tile.
- either: Fills a niche between
Option<T>
andResult<T, E>
. - log: Widely-used logging crate API, with a large number of implementation libraries.
- num: A widely-used extension of Rusts' numerical type system.
- num_cpus: Provides the number of logical CPUs; useful to know for multi-threading.
- once_cell: Single-assignment cells, lazy values, and improved static variable assignment.
- parking_lot: More compact and efficient versions of the std synchronization primitives.
- rand: Widely-used, capable, and adaptable random value generation; not limited to numbers.
- scopeguard: Defer to the end of the scope.
- thread_local: Thread-local variables and storage; can be used more places than the std
thread_local!()
Contributing
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as below, without any additional terms or conditions.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.