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.
pin-initSafe pinned-initialization in Rust29,827Apache-2.0 OR MIT
slice_traitA generic trait for any slice, with item as a type parameter29,809MIT
newtype-derive-2018This crate provides macros for deriving common traits for newtype structures.29,794MIT OR Apache-2.0
hot_reloadTrait and service definition of periodic hot reloader and notifier for config-file, KVS, etc.29,603MIT
utils-resultsThe easiest and most intuitive error handling solution.29,564MIT OR Apache-2.0
lifelineLifeline is a dependency injection library for asynchronous message-based applications.29,513MIT
musli-allocatorAllocators for Müsli.29,504MIT OR Apache-2.0
random-constructibleProvides a trait for creating random instances of enums with weighted probabilities29,496MIT OR Apache-2.0
as_repr-coreRust trait for constant `#[repr(T)]` conversions28,903Apache-2.0 OR BSL-1.0 OR MIT
setsGeneric vectors as sets. Efficiently sorting, merging, ranking, searching, reversing, intersecting, etc.28,843Apache-2.0
push-traitPush trait for collectons.28,383CC0-1.0
branch_hintsCrate that provides likely and unlikely branch hint functions in stable Rust.28,329MIT OR Apache-2.0
errorsstd::error::Error utilities28,178MIT
nzCollection of 100% safe macros for creating non-zero integers more easily.27,785Zlib OR Apache-2.0 OR MIT
serdev_deriveproc macros for SerdeV - Serde with Validation27,717MIT
topographA miniscule thread pool and toposort scheduler27,495MIT OR Apache-2.0
rand-constructEncapsulates the random-constructible and random-constructible-derive crates which are used for creating random instances of data…27,448Apache-2.0
serdevSerdeV - Serde with Validation27,442MIT
reusableComposable struct fields - reuse struct fields in other structs27,369MIT OR Apache-2.0
scoped-arenaArena allocator with optional scopes27,192MIT OR Apache-2.0
rustbasicRust Basic : Planned Development27,166MIT OR Apache-2.0
self-rust-tokenizeTurns instances of Rust structures into a token stream that creates the instance26,900MIT
elicitSmartPointer-like structure for polymorphism.26,897MIT OR Apache-2.0
flux-theoryA modern evolution on flow-based programming (FBP).26,887Unlicense
slice_opsA selection of useful slice operations.26,872MIT
asimov-patternsASIMOV Software Development Kit (SDK) for Rust26,867Unlicense
sdl3-mainTools for using SDL's main and callback APIs26,822Zlib
lowdashA Lodash inspired utility library to manipulate array and object for Rust26,684MIT
infinite-iteratorA trait for iterators that never end26,681MIT
concat_constconst `&[u8]` and `&str` concatenation26,636MIT OR Apache-2.0
declarative_type_stateA collection of declarative macros to reduce boilerplate code when implementing type-state patterns26,569MIT
sharded_mutexNo per-object memory overhead locks. Pseudo atomic ops for Copy/PartialEq types.26,401MIT OR Apache-2.0
lifetimeTraits and derive macros to change the lifetime of a type,
allowing efficient reuse of your stucts or enums with any lifetime…26,285MIT OR Apache-2.0
validValidate custom types by composing primitive validation functions. Use one common API for validating
all kind of business rules…26,196MIT/Apache-2.0
bevy-butlerA crate for making Bevy systems more self-documenting26,180MIT OR Apache-2.0
errifyFunction error context provider26,176MIT OR Apache-2.0
partial_derive2_derivemakes all the properties of a struct type an optional property26,013MIT
option_traitHelper traits for more generalized options25,941MIT
pilgrimageA Kafka-like message broker in Rust25,896MIT
id_collectionsIndex-oriented programming in Rust25,870MIT
wiwiA library, of, Stuff™25,822MIT
structzAnonymous struct implementation in rust25,770MIT OR Apache-2.0
skipifTurn test cases into no-ops with _SKIPPED appended to their name based on compile time conditions.25,754Apache-2.0
almost-enoughBatteries-included ergonomic extensions for the `enough` cooperative cancellation crate25,660MIT OR Apache-2.0
tighterrorA minimalistic error representation framework.25,646MIT OR Apache-2.0
acuUtilities for building asynchronous actors25,558MIT
ddd-rs-derive`ddd-rs`'s proc macros.25,550MIT
orion-errorStruct Error for Large Project25,535MIT
reffersSmart pointers: ARef, that allows even further owner erasure than OwningRef. Strong is a memory efficient Rc + RefCell in one.…25,363Apache-2.0/MIT
explicit_castA crate for explicit widening, truncating, and sign casting of primitive integers25,344Apache-2.0 OR MIT
lens-rs_derivemacro to derive lens for data type25,326MIT/Apache-2.0
errify-macrosFunction error context provider (macros)25,321MIT OR Apache-2.0
type-signature-deriveDerive macro for the `type-signature` crate. Not intended for direct use - depend on `type-signature` instead.25,264MIT OR Apache-2.0
guardenZero-cost abstractions for scoped guards, deferred execution, and async task detachment25,259MIT
guarden-macrosThe procedural macro engine powering the guarden crate25,232MIT
type-signatureCompile-time stable structural hash of a Rust type, via a derive macro.25,214MIT OR Apache-2.0
io-arraysRandom-access I/O25,199Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
statum-coreCore types for representing legal workflow and protocol states explicitly in Rust24,826MIT
variadizVariadic function support for rust24,749MIT OR Apache-2.0
phlowAn engine for scripting reactive browsers in Rust by adding custom views to structures24,715MIT
utils-atomicsVarious atomic utils24,701MIT
statum-macrosProc macros for representing legal workflow and protocol states explicitly in Rust24,402MIT
throwEfficiently add statically-calculated stack traces to errors.24,350MIT
eventsourcingEvent Sourcing for Rust24,332Apache-2.0
ai-descriptor-deriveProvides a proc macro we can use to annotate enums for facilitating itemization and description using an AI model24,316MIT OR Apache-2.0
bitcoinleveldb-syncRust crate for efficient, scoped synchronization using 'parking_lot' raw mutexes.24,290MIT
futures-async-runtimeRuntime for the async/await macros in the `futures` crate.24,248MIT/Apache-2.0
syn-unnamed-structExtends syn expressions and meta structs with unnamed structs and meta lists24,204MIT OR Apache-2.0
option-cellOptionCell: OnceCell but derivable from Option24,095MIT OR Apache-2.0
kv-deriveDerive struct conversions from and to key-value vectors24,082MIT
facet-errorthiserror replacement powered by facet - derive Error trait from doc comments24,033MIT OR Apache-2.0
andexSafe, strongly typed array indexes and wrappers for rust with zero dependencies23,874MIT
dont_panicpanic!()-like macro that causes linking error instead of panicking. May be used to statically ensure some code won't panic.23,867MITNFA
cursorA more free Rust-Iterator.23,728MIT OR Apache-2.0
fieldx_derive_supportDerive proc macros for fieldx_derive crate23,718non-standard
ai-descriptor-traitProvides an interface for the proc macro we can use to annotate enums for facilitating itemization and description using an AI…23,547MIT OR Apache-2.0
reusing-vecWrapper over Vec that allows elements to be reused without dropping them23,523MIT OR Apache-2.0
const-tweakerTweak constant variables live from a web GUI23,437AGPL-3.0-or-later
valuandThe value to be carried.23,411Unlicense
col_macrosA collection of general purporse macros for construct distinct types of collections.23,155Unlicense
defer-heavyA versatile and easy to use defer statement for Rust. Similar to Go's or Zig's defer.23,105MIT
sort_by_deriveDerive macro SortBy and helper macros EnumAccessor and EnumSequence, deriving traits `Ord`, `PartialOrd`, `Eq`, `PartialEq` and…23,093Unlicense
enum_propertiesA macro for declaring static properties on enum variants23,070Apache-2.0
smart_accessA minimalistic "lazy bidirectional pointer" framework.23,061MIT
soft_assertNon-panicking assertions23,058Apache-2.0/MIT
id-vecSimplify Graphs in Rust. Introduces IdVec, which automatically creates Ids for each new object, reusing deleted Ids.22,965MIT
structuralField accessor traits,and emulation of structural types.22,857MIT/Apache-2.0
lens-rslens implemented in rust22,827MIT/Apache-2.0
key-lockLibrary for mutual exclusion by keys.22,730MIT
local-or-heapprovides a type with a pre-specified size, regardless of the size of the T type it contains, using heap allocation if necessary22,706MIT OR Apache-2.0
log_errLog error messages from Unwrap and Expect with log crate22,681Unlicense
bossyOpinionated convenience wrappers for `std::process::Command` and friends.22,666Apache-2.0/MIT
iterator_ilpIterator extensions for instruction-parallel reductions22,625MPL-2.0
implementationThe implementation crate22,591MIT
once_self_cellSafe-to-use proc-macro-free self-referential structs in stable Rust.22,539Apache-2.0
eventsourcing-deriveCustom derive macros for Eventsourcing components22,311MPL-2.0
expect-exitResult.expected(): display an error message and exit without a panic.22,091BSD-2-Clause
iter-opt-filterAdds an optional filter to iterators.22,088MIT
finnyFinite State Machines with a procedural builder-style API and compile time transition checks.22,048MIT OR Apache-2.0
orx-treeA beautiful tree 🌳 with convenient, efficient, parallelizable growth, mutation and traversal features.22,016MIT OR Apache-2.0
alignersUtilities for alignment guarantees for data.21,985MIT
sugarRust syntax sugar collections.21,915MIT
stackvecA crate to use stack-allocated Vectors (performance and/or no-std)21,786MIT
capturMacro to capture whole structs from disjoint fields in a closure.21,780ISC
tupleopsUtility library to work with tuples21,735ISC OR MIT OR Apache-2.0
omniswapswap values between possibly-overlapping references21,621MIT OR Apache-2.0
fieldx_deriveDerive proc macros for fieldx crate21,577non-standard
set_sliceA macro for assigning values to slices21,532Apache-2.0
docimaGenerate images at build time & embed them in the Rust documentation21,386MIT/Apache-2.0
copyvecA contiguous growable array type, with a fixed, stack-alllocated capacity that implements Copy.21,383MIT OR Apache-2.0
fieldxProcedural macro for constructing structs with lazily initialized fields, builder pattern, and serde support with a focus on…21,256non-standard
state-shiftMacros for implementing Type-State-Pattern on your structs and methods21,194MIT
nilNoxmore's Ixperimental Lutilities21,145MIT OR Apache-2.0
continueSwift-style continuation API21,133MIT OR Apache-2.0
typenum-constsProcedural macros that take a literal integer (or the result of an evaluation of simple mathematical expressions or an…21,125MIT OR Apache-2.0
publicA attribute macro used to mark struct/union and its fields as public21,116GPL-3.0
connectmessage queue abstraction over async network streams20,994Apache-2.0
parrot-networkExperimental public Distributed Ledger Technology (DLT)20,976MIT
zoetAdds `#[zoet]` macro to reduce boilerplate when implementing common traits.20,917MIT
serde-feature-hackA hack to allow having a feature named serde while having serde as a dependency20,745MIT OR Apache-2.0
default-testA default trait that can be used in tests20,723MIT
r3bl_reduxDEPRECATED: This crate is no longer maintained. Redux library built using Tokio20,715Apache-2.0
r-rustUseful tools and macros for research (WIP).
Currently, a microbench probe is implemented.20,630MIT
sanctum-macrosSanctum Solana Macros20,611MIT OR Apache-2.0
eesSimple error-handling library20,604CC0-1.0
ebacktraceA simple error wrapper which captures a backtrace and can carry an optional textual description20,584BSD-2-Clause OR MIT
unborrowMacro for calling a &mut self method with transient &-borrows of self in the parameters20,570MIT
thiserror_core2derive(Error) (no_std-enabled using core2)20,445MIT OR Apache-2.0
timeout-iteratorTimeoutIterator is a wrapper over any iterator that adds peek_timeout and next_timeout functions.
The canonical use-case is…20,415Apache-2.0
assureAssure: macros for Rust runtime checks and error handling20,394MIT OR Apache-2.0 OR GPL-2.0-only
pyo3-errorUnified error causality chains across Rust and Python20,337MPL-2.0
inline_dynA container type for storing dynamically-sized types inline20,279MIT OR Apache-2.0
compare_versionA Rust library for comparing semantic versioning strings and checking version compatibility.20,212MIT
oopObject-Oriented Inheritence in Rust20,137MPL-2.0
pyderiveDerive macro of Python special methods and a class attributes for PyO320,132MIT OR Apache-2.0
oop-macroMacros for the oop package20,065MPL-2.0
variadiz-macrosProcedural macros implementation of variadiz20,000MIT OR Apache-2.0
jane-eyreBy Currer Bell19,976MIT OR Apache-2.0
macro_rules_attrUse declarative macros as proc_macro attributes. (`#[apply]` / `#[extend]` your `macro_rules!`)19,952MIT
tldr-traitsAbstractions for TL;DR summarization using the five Ws: who? what? when? where? why?19,874Unlicense
emplacableReturn unsized values from functions19,843MIT OR Apache-2.0
abi_stable_derive_libImplementation detail of abi_stable.19,836MIT/Apache-2.0
error_mapperSimple and standardized Results and Errors handling accross all your projects19,803MIT
structural_deriveImplementation detail of the structural crate.19,672MIT/Apache-2.0
cloudfront-logsAWS CloudFront log line parser19,636MIT OR Apache-2.0
movesliceA one-function crate to move chunks in a slice around.19,407MPL-2.0
yew-callbacksCreate and manage callbacks per component without creating duplicates19,359MIT OR Apache-2.0
model-mapper-macrosMacros for model-mapper crate19,351Apache-2.0
enum_variant_macrosMacros to generate From & TryFrom for enums19,292MIT OR Apache-2.0
display_withReturn opaque impl Display and/or impl Debug types via display_with and debug_with.19,212MIT OR Apache-2.0
thalo-macrosMacros for crates.io/thalo19,096MIT OR Apache-2.0
model-mapperDerive macro to map between different types18,975Apache-2.0
counting-macrosStateful numeric incrementing macros18,963MIT OR Apache-2.0
sodService Oriented Design18,952MIT OR Apache-2.0
cast_trait_object_macrosCast between trait objects using only safe Rust.18,917MIT OR Apache-2.0
redb_modelRedb model derive macro and DTO type conversion18,678MIT OR Apache-2.0
irox-enums_deriveDerivable impls of the traits in irox-enums18,612MIT OR Apache-2.0
oofsError handling library that generates and injects context for you.18,600MIT
irox-typesEnums and structs to describe Rust's basic type system18,582MIT OR Apache-2.0
selfrefSemi-pain-free self-referential pinned types18,575MIT OR Apache-2.0
fieldx_auxVarious types and tools useful for fieldx crates and, potentially, to users of fieldx18,561non-standard
tetsy-send-wrapperThis Rust library implements a wrapper type called SendWrapper which allows you to move around non-Send types
between threads, as…18,477MIT/Apache-2.0
stringplusA helper crate for dealing easily with Rust strings.18,468MIT
singleton-managerA programatical singleton manager18,417MIT
const-tweaker-attributeTweak constant variables live from a web GUI18,375AGPL-3.0-or-later
doc_itemAttributes for item-level documentation customization.18,373MIT OR Apache-2.0
enumerationAn extension to rust enum18,342MIT
derive_empty_traitsderives an empty trait on structs / enums18,322MIT
dynargA simple mechanism for dynamic robust argument handling18,313LGPL-3.0-or-later
cast_trait_objectCast between trait objects using only safe Rust.18,214MIT OR Apache-2.0
async_main_macroRuntime-agnostic async main proc macro18,204Apache-2.0 OR BSL-1.0 OR MIT
reaktorReaktor18,172Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
sorted-hlistType-level heterogeneous lists with compile-time intersection and sorting using typenum.18,000MIT OR Apache-2.0
component_modelRevolutionary type-safe component assignment for Rust. Build complex objects with zero boilerplate using derive macros and…17,922MIT
curryingA crate for currying anything implementing `FnOnce`. Arguments can be passed one at a time, yielding a new something implementing…17,903MIT
windows-helpersHelpers for the windows crate17,869MIT OR Apache-2.0
async_mainRuntime-agnostic async main proc macro17,816Apache-2.0 OR BSL-1.0 OR MIT
mut_familyA GAT-based library for writing code that is generic over exterior/interior mutability and mutability of references.17,737MIT OR Apache-2.0
no-breakTypesafe extraction of continuation values from unbreakable control flows17,672Apache-2.0 OR MIT
methods-enumTwo macros for easy implementation of 'state' design pattern and other dynamic polymorphism using enum instead of dyn Trait17,670MIT OR Apache-2.0
cvarsConfiguration variables - a simple and ergonomic way to store and edit configuration at runtime17,670AGPL-3.0-or-later
dyn_ordEquality and ordering for trait objects17,660MIT
rename-itemProcedural macro to rename items on declaration, according to different case styles17,649MIT OR Apache-2.0
fedA sketch implementation of anonymous, tagged unions in stable Rust17,631Apache-2.0
dry-modsMacros to make your module management DRY17,554MIT
derive-intoA Rust derive macro for easily creating conversions between structs and enums17,536MIT
amplify_derive_helpersAmplifying Rust language capabilities: helper functions for creating proc macro libraries17,522MIT
struct-metadataMacros for attaching metadata to structs.17,520MIT
exonum-cryptocurrency-advancedExonum blockchain example implementing a cryptocurrency.17,470Apache-2.0
oopsie_woopsieA crate to make debugging unexpected panics easier on end-user machines.17,422MIT
hexga_numberProvide basic trait and constant for number, and the macro map_on!.17,373MIT OR Apache-2.0
indexlandRust Collections with Newtype Indices17,323MIT
kommandCommand-line arguments via function arguments17,284Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
clap-dispatchErgonomically dispatch CLI subcommands17,198MIT
or-panicunwrap or panic17,179MIT OR Apache-2.0
stackstackA singly linked list intended to be chained along stack frames.17,136MIT OR Apache-2.0
closetCLOSure-Enhancing Toolbox (CLOSET) provides some questionably-useful macro utilities for closures, including clone_army!, which…17,129MIT/Apache-2.0
stdto_coreStdto provides a set of functional traits for conversion between various data representations.17,073MIT OR Apache-2.0
this-is-fine`pub type Fine<T, E> = (T, Result<(), E>);` ☕🐕17,021MIT OR Apache-2.0
stdto_deriveStdto provides a set of functional traits for conversion between various data representations.17,007MIT OR Apache-2.0