A collection of Rust libraries that are useful across (my) projects.
The following libraries are part of this project:
- ast-toolkit-rs: A collection of structs and interfaces extremely useful when working with compilers that parse text into ASTs.
- auto-traits-rs: A collection of macros for automatically (blanket) implementing certain traits.
- bytes-rs: Adds a Rust derive macro that can be used to easily parse & serialize header-like bytes that have specified order and interpretation.
- database-rs: Defines some tools to make working with (My)SQL(ite) easier. (archived)
- debug-rs: Defines an alternative to the builtin
Debug
-derive macro that applies more lenient bounds on generics. - download-rs: Contributes a few functions that do typical GET HTTP requests to download files and to manage them (e.g., (un)archival).
- enum-debug: Simple Rust crate that implements EnumDebug, which can automatically derive a formatter for enum variant names only.
- error-trace-rs: Small Rust crate for printing nice errors traits based on [
Error::source()
]. - humanlog-rs: A simple logger for the log crate that aims to have a simple user mode and a comprehensive debug mode.
- literal-arithmetic-rs: A small library that provides a macro for doing simple arithmetic on literals.
- names-rs: A small library that provides some names useful for sampling random ones.
- serializable-rs: Provides a helper trait for serde types that makes working with them slightly nicer.
- stackvec-rs: A small Rust library that provides a stack-allocated vector that is much faster in allocation at the cost of flexibility.
- transform-rs: A small Rust library that defined the
TransformIter
-iterator, which can map an element in a tuple to zero or more elements of a potentially different type. - versioning-rs: A powerful macro that generates dynamic copies of Rust elements to generate variants for e.g. different versions of the same spec.
See each library in detail for how to use them. In general, just add them to your Cargo.toml
and you should be fine.
Each library has its own license. Check out their repositories for more information.