cxx. Safe interop between Rust and C++
6.8kanyhow. Flexible concrete Error type built on std::error::Error
6.6kthiserror. derive(Error) for struct and enum error types
5.5kproc-macro-workshop. Learn to write Rust procedural macros [Rust Latam conference, Montevideo Uruguay, March 2019]
4.8ksyn. Parser for Rust source code
3.3kcargo-expand. Subcommand to show result of macro expansion
3.1kasync-trait. Type erasure for async trait methods
2.2kcase-studies. Analysis of various tricky Rust code
2krust-quiz. Medium to hard Rust questions with explanations
1.9kquote. Rust quasi-quoting
1.6krust-toolchain. Concise GitHub Action for installing a Rust toolchain
1.6ktypetag. Serde serializable and deserializable trait objects
1.5kwatt. Runtime for executing procedural macros as WebAssembly
1.5kinventory. Typed distributed plugin registration
1.3kno-panic. Attribute macro to require that the compiler prove a function can't ever panic
1.2kpaste. Macros for all your token pasting needs
1.1kserde-yaml. Strongly typed YAML library for Rust
1ktrybuild. Test harness for ui tests of compiler diagnostics
971miniserde. Data structure serialization library with several opposite design goals from Serde
936proc-macro2. Rust
924linkme. Safe cross-platform linker shenanigans
871erased-serde. Type-erased Serialize, Serializer and Deserializer traits
821indoc. Indented document literals for Rust
787reflect. Compile-time reflection API for developing robust procedural macros (proof of concept)
779prettyplease. A minimal `syn` syntax tree pretty-printer
772dyn-clone. Clone trait that is object-safe
753ryu. Fast floating point to string conversion
703semver. Parser and evaluator for Cargo's flavor of Semantic Versioning
668request-for-implementation. Crates that don't exist, but should
631semver-trick. How to avoid complicated coordinated upgrades
560cargo-llvm-lines. Count lines of LLVM IR per generic function
516path-to-error. Find out path at which a deserialization error occurred
425rustversion. Conditional compilation according to rustc compiler version
394itoa. Fast function for printing integer primitives to a decimal string
379efg. Conditional compilation using boolean expression syntax, rather than any(), all(), not()
293rust-faq. Frequently Asked Questions · The Rust Programming Language
288monostate. Type that deserializes only from one specific value
281serde-repr. Serialize and deserialize C-like enum as underlying repr
267readonly. Struct fields that are made read-only accessible to other modules
266cargo-tally. Graph the number of crates that depend on your crate over time
255dissimilar. Diff library with semantic cleanup, based on Google's diff-match-patch
241colorous. Color schemes for charts and maps
241ref-cast. Safely cast &T to &U where the struct U contains a single field of type T.
219faketty. Wrapper to exec a command in a pty, even if redirecting the output
205proc-macro-hack. Procedural macros in expression position
204star-history. Graph history of GitHub stars of a user or repo over time
202automod. Pull in every source file in a directory as a module
187ghost. Define your own PhantomData
167inherent. Make trait methods callable without the trait in scope
165seq-macro. Macro to repeat sequentially indexed copies of a fragment of code
165bootstrap. Bootstrapping rustc from source
119unicode-ident. Determine whether characters have the XID_Start or XID_Continue properties
110noisy-clippy. Rust
101install. Fast `cargo install` action using a GitHub-based binary cache and attestations
82typeid. Const TypeId and non-'static TypeId
71serde-starlark. Serde serializer for generating Starlark build targets
70