CATEGORY
Rust patterns 3,906 crates
Data as of 2026-07-25 (crates.io database dump, timestamp 2026-07-25T02:00:36Z). Source: crates.io · db-dump.tar.gz · methodology & corrections.
rudo-gc-deriveDerive macro for the rudo-gc Trace trait909MIT OR Apache-2.0
icentral-test-updateA Rust crate that provides advanced tools and frameworks for integration testing, utilizing the Rust 2021 edition features.908MIT OR Apache-2.0
dstifysafe construction of custom dynamically-sized types (DSTs)905MIT OR Apache-2.0
app-errorError type for applications904MIT OR Apache-2.0
type-macro-derive-tricksDerive macros that work with ADTs containing macros in type positions902MIT
resextA simple, lightweight error handling crate for Rust902MIT
static_initializerGlobal non-lazy zero-cost statics without `const fn`898non-standard
sys_allocLow-level system allocator primitives895MIT OR Apache-2.0
alias_macrosA alias macro for Rust - create alias for everything...!893MIT OR Apache-2.0
avA Rust procedural macro for tracking API version history and deprecation warnings.887MIT
shared-typeShared type alias and several traits to simplify working with Arc<Mutex<T>>.885MIT
anyhow_serdeFlexible concrete Error type built on std::error::Error with serde support882MIT OR Apache-2.0
familiareserve879MIT
strut-configA companion to `config` crate. Part of the Strut family.873MIT
delegate-matchProc-macro for delegation of grouped match arms872MIT OR Apache-2.0
await_valuesPrimitives for subscribing to / notifying about changes to values871MIT OR Apache-2.0
klauthed-errorError kernel for klauthed: the DomainError trait with stable, serializable error codes and categories.868MIT OR Apache-2.0
easy-macrosToolkit for building Rust procedural macros + generating debug info867Apache-2.0
surqxQuery macro for SurrealDB867non-standard
eatEat variables863Apache-2.0
strut-tracingA convenience layer around `tracing` crate. Part of the Strut family.862MIT
enumkitConvenient traits for working with enums.859MIT OR Apache-2.0
strut-sentryIntegration with Sentry. Part of the Strut family.856MIT
strut-databaseA convenience layer around `sqlx` crate. Part of the Strut family.853MIT
strut-rabbitmqA convenience layer around `lapin` crate. Part of the Strut family.853MIT
supply-demandSupply-Demand - A functional dependency injection library852MIT
karpal-proof-deriveDerive macros for algebraic law verification in the Industrial Algebra ecosystem852Apache-2.0
reliakit-secretSecret-safe wrappers for Rust values that should not leak through formatting or diagnostics.849MIT
make_publicA procedural macro to make struct fields public847MIT
dstify_deriveproc macro for dstify839MIT OR Apache-2.0
struct_to_array_deriveDerive macro for struct_to_array838MIT OR Apache-2.0
error_statusModel common error context with HTTP 4xx and 5xx code835MIT OR Apache-2.0
qubit-ioByte-stream buffering and std::io utilities for Rust834Apache-2.0
nestingNesting structs, enums, and impls, in Rust!833MIT OR Apache-2.0
fluent_resultFluent postfix helpers for Rust's Result and Option types831MIT OR Apache-2.0
strid-examplesExamples demonstrating usage of the `strid` crate829Apache-2.0 OR MIT
magic-args-deriveDerive macros for magic-args.824MIT
wrapitA lightweight Rust crate that wraps any variable using interior mutability (`RefCell`, `Mutex`, or `RwLock`) for ergonomic shared…822MIT
quiet_panicsMake your panics easy to read821GPL-3.0
qubit-commonFoundational utilities and language-level tools for Rust application development820Apache-2.0
coroutine-stateInspect the state of a Future created by an async function.820MIT OR Apache-2.0
resext-macroproc-macro for resext crate819MIT
apollo-errorsStructured error handling with automatic format conversion819Elastic-2.0
lesbarString types that must encode legible text.816MIT
platform-castPlatform-specific safe cast.814MIT OR Apache-2.0
async-reciprocalsA utility library for asynchronous fallible conversion and reciprocals in Rust.805non-standard
recluseA web crawler framework for Rust805MIT-0
infallible-builderDerive macro for infallible implementation of the builder pattern.802MIT
dashscope阿里云灵积800MPL-2.0
errorstashA library for collecting multiple related errors, and reporting them together799MIT OR Apache-2.0
rusty-hktHigher-kinded types for Rust797Apache-2.0
autovariants-deriveA macro that exposes a function that returns all enum variants.796non-standard
bestbeforeA procedural macro for marking code with expiration dates795EPL-2.0
auto-defaultMacro that adds a default field value of `Default::default()` to fields that don't have one792MIT OR Apache-2.0
wechat-error微信统一错误处理787MPL-2.0
doless_coreA Rust macro to simplify struct mapping and function utilities.784MIT OR Apache-2.0
string-literal-const-replaceProc macro for compile-time find/replace on string literals776MIT OR Apache-2.0
spipeSmart pipe macro for chaining function/method calls, with unwrap, map, and and_then support772non-standard
orkaAn asynchronous, pluggable, and type-safe workflow engine for Rust, designed for orchestrating complex multi-step business…770MPL-2.0
karpal-verifyExternal prover bridge and trust model for the Industrial Algebra ecosystem770Apache-2.0
openzl_sddl_deriveGenerate OpenZL SDDL definitions from Rust structs763MIT
proc-diagLeverage compiler-provided functionality to emit custom error messages in procedural macros.760MIT OR Apache-2.0
orx-metaMeta structures such as statically typed queues of heterogeneous elements.757MIT OR Apache-2.0
tramliConstrained flow engine — state machines that prevent invalid transitions at build time757MIT
rudo-gcA garbage-collected smart pointer with automatic cycle detection using BiBOP memory layout and Mark-Sweep collection756MIT OR Apache-2.0
libutils-reportA custom error wrapper for detailed logs752MIT
field_comparable_deriveProcedural macro to generate struct field comparison methods / Macro procédurale pour générer des méthodes de comparaison de…751MIT OR Apache-2.0
pulz-functional-utils-macrosProc-Macros for writing macros with variadic tuples and functions749MIT OR Apache-2.0
reliakit-validateComposable validation traits and error types for Rust structs and values.749MIT
supply-chain-trust-crate-000022Single assignment cells and lazy values.748MIT OR Apache-2.0
kudi-macrosMacros for kudi744MIT
workspacer-upgrade-testA Rust crate for testing, simulating, and automating upgrade processes in Rust workspace environments.738MIT
struct_to_arrayConvert between homogeneous structs and fixed-size arrays736MIT OR Apache-2.0
supply-chain-trust-crate-000020Extra iterator adaptors, iterator methods, free functions, and macros.734MIT OR Apache-2.0
flexcellA flexible cell that allows safe circumvention of double borrow issues.734MIT OR Apache-2.0
transpose-futureTranspose Option<impl Future>733MIT
downgradeDowngrade a mutable reference to an immutable one.727MIT
includeinclude c code in rust files using macros727BSD-3-Clause
optfield-liteA macro to generate a new struct with fields wrapped in Option.726MIT
int_likeA Rust macro for defining integer-backed opaque types safely723MIT
unchecked_wrapConvenient UncheckedSync/Send wrapper types722MIT
reliakit-backoffClock-agnostic retry backoff policies (exponential, linear, constant) with jitter helpers. no_std and zero-dependency.715MIT
icentraliCentral is a command-line interface development utility in Rust, providing argument parsing, subcommand management, dynamic flag…713MIT OR Apache-2.0
workspacer-upgrade-test-suitesA robust framework for testing upgrade paths in Rust workspaces, ensuring compatibility and reliability during version…712MIT
hexga_math_deriveMath proc macro710MIT OR Apache-2.0
size_hinterIterator adaptors allowing overriding or specifying size_hint.709MIT OR Apache-2.0
stratagemA trait library that enables state management and command execution with built-in undo support, inspired by the Command design…708MIT OR Apache-2.0
supply-chain-trust-crate-000034A macro for declaring lazily evaluated statics in Rust.702MIT OR Apache-2.0
occupiedA type-safe way to interact with removing from and inserting into options.700MPL-2.0
rs-schemaTypes modeling rust code structures.698MIT OR Apache-2.0
extend-fnUse arbitrary FnMut when something that must implement Extend is needed698MPL-2.0
enumkit-deriveDerive macros for enumkit.693MIT OR Apache-2.0
variants-data-structA derive macro to convert enums into a struct where the variants are members and types are that that of variants data.692MIT OR Apache-2.0
blueprint-display-containerUtilities to implement Display692MIT OR Apache-2.0
blueprint-cmp-anyComparison for &dyn types691MIT OR Apache-2.0
karpal-verify-deriveDerive and attribute macros for Karpal verification obligation export690Apache-2.0
character-traits-warrior-capabilityA Rust crate for modeling and simulating a broad spectrum of warrior capabilities, aimed at enhancing intricate game mechanics…679MIT
as_repr-deriveRust trait for constant `#[repr(T)]` conversions677Apache-2.0 OR BSL-1.0 OR MIT
zeta-sharedShared utilities and types for Zeta Reticula components676MIT OR Apache-2.0
egui-table-kitAn extension for `egui` that brings batteries-included, filtering, highlighting, tree structures, and an action dispatch to your…675MIT
mini-game-service提供小游戏后端服务675MPL-2.0
bronzite-types🔮 Shared types for Bronzite compile-time reflection IPC protocol671MIT OR Apache-2.0
dynpatch-interfaceShared interface types and traits for dynpatch hot-patching system666MIT
dependency-injector-deriveDerive macros for dependency-injector665MIT OR Apache-2.0
hypotaxisUninterrupted method chaining664MIT
typed_builder_rulesOpinionated and very limited macro_rules reimplementation of the typed_builder macro661MIT
qsingltonHelper macros to generate singleton definitions655MIT
float-bitsFloats stored as raw bits, making them hashable and totally ordered.655MIT
pipelining-macroA convenience macro for the pipeline syntax pattern651MIT
character-traits-relational-expectationsA Rust crate for modeling complex relational expectations and intrinsic dimension ratings of character traits.651MIT
rusttoolkitRust toolkit with cool useful procedural macros649MIT OR Apache-2.0
magic-args"Magic" declarative-style function arguments.648MIT
pulz-functional-utilstraits and macros to work with tuples and functions646MIT OR Apache-2.0
hash-injectorHasher+BuildHasher to inject particular hash646BSD-2-Clause OR Apache-2.0 OR MIT
light_clone_deriveDerive macro for light_clone crate644MIT OR Apache-2.0
uncooked_slicesA wrapper around raw slice pointers that enables safe iteration and indexing642MIT OR Apache-2.0
trycatchThrow and catch exceptions in rust.641non-standard
qubit-codecCore codec traits and buffer conversion primitives for Rust637Apache-2.0
active-uuid-registryA library for managing in-process, context-aware UUIDs for liveness tracking.634MIT
signA sign enum for writing direction-generic algorithms.633MIT
typewit_gcefor coercing between equal types with generic const arguments631Zlib
typed_tupleType-safe access, isolation and mutation of primitive tuple segments and elements.631MIT OR Apache-2.0
lang-extensionRust Lang Extension630Apache-2.0
known-types-anthropicWell-known types for Anthropic APIs.630Unlicense
capsec-coreCore capability types for compile-time capability-based security in Rust624Apache-2.0
known-types-ietfWell-known types for IETF specifications.622Unlicense
witnessedType-level witness wrapper for carrying validated invariants.622MIT
praborrow-proverSMT-based formal verification for PraBorrow. Interfaces with Z3 theorem prover to mathematically validate Constitution invariants.621MIT
newtype-tools-deriveErgonomic utilities for the Rust newtype idiom.621MIT OR Apache-2.0
right-asChain call assigns tuple elements to outside615MIT
rudo-gc-tokio-deriveProc-macro for rudo-gc tokio integration615MIT OR Apache-2.0
known-types-xWell-known types for X (formerly Twitter) APIs.614Unlicense
chord_macroHuman readable input chord construction and pattern matching.611MIT
known-types-w3cWell-known types for W3C specifications.610Unlicense
known-types-googleWell-known types for Google APIs.608Unlicense
known-types-nostrWell-known types for the Nostr protocol.608Unlicense
known-types-graphqlWell-known types for GraphQL specifications.603Unlicense
shigunaruA lightweight reactive signals library in Rust602MIT
doless_macrosA Rust macro to simplify struct mapping and function utilities.601MIT OR Apache-2.0
oncelockA fast and simple implementation of OnceLock590MIT OR Apache-2.0
byorBring your own runtime!583MIT
auto-variantsA macro that exposes a function that returns all enum variants.580non-standard
split-spareA trait to allow referencing the already initialized part of a collection while pushing into it's reserved capacity.579MIT OR Apache-2.0
light_cloneCompile-time enforcement for O(1) clone operations574MIT OR Apache-2.0
bigerror-error-stackA context-aware error-handling library that supports arbitrary attached user data571MIT OR Apache-2.0
enum-structAdd shared fields to each variant of the enum563MIT
paging-streamA utility to consume paginated data sources as a `futures::Stream`560MIT
gistyr-libLibrary of small tools and helpers560MIT OR Apache-2.0
bitteAutomatically desugar and set Send/Sync bounds on async traits559MIT
flexfloatA Rust library for arbitrary-precision floating-point arithmetic with growable exponents and fixed-size fractions, extending IEEE…555MIT
mcp_rust_examplesComplete educational resource for learning MCP (Model Context Protocol) development with Rust - 20 comprehensive examples from…553MIT
omittyOn-demand TypeScript-like Omit<> for Rust - generate type variants with omitted fields using #[omitty] and Omit! macro552MIT
enum_variant_accessorsderive macros to generate is_*, as_* and as_*_mut accessors for enum variants552MIT
identity-macroRemove metavariable fragment to make it reusable for macro_rules550MIT
safevalueA value based approach to uphold SAFETY requirements for unsafe Rust code.548MIT OR Apache-2.0
burst-guardFlow Control543MIT OR Apache-2.0
rtb-errorError types and the diagnostic report pipeline. Part of the phpboyscout Rust toolkit.543MIT
kudiCompile Time Interface-Oriented Dependency Injection541MIT
praborrow-defenseProcedural macros for invariant verification. Generates runtime checks and SMT-based formal verification.537MIT
newtype-toolsErgonomic utilities for the Rust newtype idiom.537MIT OR Apache-2.0
error-railErrorRail is a no_std compatible Error Handling library for the Rust language.536Apache-2.0
bias-mietteFancy diagnostic reporting library and protocol for us mere mortals who aren't compiler hackers.533Apache-2.0
poly_enumHierarchical polymorphism with enums533Apache-2.0
fiano_swapA simple generic swap function for two values using Copy trait. This library provides a safe and easy way to swap variables in…526MIT OR Apache-2.0
similarity-traitSimilarity trait Rust crate: compare input values, such as two or more items, then return an output value, such as a mesure of…524MIT OR Apache-2.0 OR GPL-2.0 OR GPL-3.0 OR BSD-3-Clause
event_bus_rsA runtime-agnostic, async, and thread-safe event bus for Rust.522MIT
structural-typing-macrosProcedural macros for structural-typing crate513MIT OR Apache-2.0
prudentHelp you make Rust code safer. For both authors and reviewers.511BSD-2-Clause OR Apache-2.0 OR MIT
no_dropA simple wrapper type that guards against a value being automatically dropped.509MIT OR Apache-2.0
qubit-spiTyped service provider registry infrastructure for Rust509Apache-2.0
rs-schema-derive-implImplementation of procedural macros for `rs-schema-derive`.508MIT OR Apache-2.0
display_as_debugEnables a rust types display implementation to be used as its debug implementation.507MIT OR Apache-2.0
tytro类型上的尾递归优化506MIT OR Apache-2.0
dizzy-macrosProc macros for the dizzy crate505MIT
karpal-profunctorProfunctor hierarchy (Profunctor, Strong, Choice) for the Industrial Algebra ecosystem505Apache-2.0
disponentAn alternative to dynamic-dispatched method calls, without the need for object safety503MIT OR Apache-2.0
goishGoish Rust — write Rust using Go idioms. Ports Go's standard library and syntax so Go programmers can write Rust code that reads…497MIT OR Apache-2.0
relentlessComposable retry policies for fallible operations and polling.497MIT OR Apache-2.0
capsec-stdCapability-gated wrappers around std::fs, std::net, std::env, and std::process495Apache-2.0
iter-builderIterator builder with chain calls495MIT
blewmBlewm: A Bloom Filter that Bloo(m) my Mind494MIT
better_tokio_selecttokio::select! that can be formatted by rustfmt493MIT OR Apache-2.0
likely_polyfillcold_path, likely, and unlikely for non-nightly Rust484MIT or Apache-2.0
macroni-n-cheesesome cool macros i made480non-standard
containingNewtypes for dealing with collections that are guaranteed to be non-empty474MITNFA
tower-resilience-executorExecutor delegation layer for Tower services - parallel request processing469MIT OR Apache-2.0
better_collectProvides a composable, declarative way to consume an iterator465MIT OR Apache-2.0
annotate-deriveProcedural macros for the annotate annotation framework465MIT
pleme-errorUnified error handling library for Pleme platform465MIT
newer-type-stdSupport defining newtype wrapper with inheriting trait implementations461MIT
qualifiersConditionally add qualifiers to item definitions458BlueOak-1.0.0
par_itertoolsExtra iterator adaptors, iterator methods, free functions, and macros that work in parallel conexts.458MIT
systemstdA custom embedded terminal handler454MIT
tuple_setErgonomic utilities for working with Rust tuples by unique types, not position449MIT
eros-macrosMacro for the eros crate448Apache-2.0
oopsie-macrosProcedural macros for the oopsie error-handling library: the #[oopsie] attribute and Oopsie derive447MIT OR Apache-2.0
issuingAn easy-to-use customizable error type446MIT
iter_chunks_extIterator extension for grouping items.445MIT OR Apache-2.0
assert-impl-traitProvides a macro to assert that a type implements a trait.442MIT OR Apache-2.0
qsingletonHelper macros to generate singleton definitions440MIT