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.
unique-rcUnique owner Rc, like Box, can Send and DerefMut5,074MIT
proto-mapper-coreInternal helper library for proto-mapper5,059MIT
nblockNon-Blocking Runtime5,056MIT OR Apache-2.0
box-dynMacro to derive the implementation of Trait for Box<T: Trait>5,045non-standard
construeCompile-Time Growable Array: Vec & String for const!5,043GPL-3.0-or-later
enum_unwrapperSmall library for easily converting from user-defined enumerations to the types in the enumeration variants5,014Apache-2.0
catch-unwindWrappers for catch_unwind that handle the edge case of the caught panic payload panicing5,010Zlib OR MIT OR Apache-2.0
bevy_save-erased-serdeType-erased Serialize and Serializer traits4,995MIT OR Apache-2.0
traitregCreate a registry of implementations of a trait4,993MIT OR Apache-2.0
docify_cloneDocify allows you to live-embed at compile time pieces of code from throughout your project as rust doc examples.4,981MIT
ez-errA simple error handling library with support for ergonomic and fast error handling.4,981MIT
seestrpointer-wide nul-terminated strings with ownership semantics4,979Apache-2.0 OR MIT
wire-rsExtensible interface for converting data to/from wire protocol. Supports non-contiguous buffers (including &[IoSlice]) and is…4,972MIT OR Apache-2.0
tosserror-deriveDerive implementation of the `tosserror` crate4,966MIT OR Apache-2.0
if-noneEarly break/continue/return if an optional expression evaluates to `None`.4,955MPL-2.0
diffuser-editEdit diffuser models without GPU and Python4,951MPL-2.0
facet-opaqueType-erased pointer helpers for Facet types4,948MIT OR Apache-2.0
cismuteSafely transmute type to itself in generic contexts4,947BSD-2-Clause-Patent
entrypoint_macrosmacros for entrypoint4,941MIT
exec-rsLibrary that provides utility traits for task execution and, if the sync feature is enabled, the ability to synchronise tasks…4,938Apache-2.0
typed_keyStrongly-typed string keys for configuration.4,928MIT OR Apache-2.0
error-infoCentralized error information ready for internationalization4,923Apache-2.0
try-insert-extExtends various types with `try_insert_with` methods.4,921MIT
fluent-stringFluent versions of String mutation methods4,921Apache-2.0
stubitstupid bit library4,901non-standard
abort-ifVery handy attribute to abort a function at compile-time if something goes wrong4,901MIT
respectorAn extension to add inspect method to Option and Result types.4,897MIT
rovv_deriveprovide the anonymous row type (poor-man's row polymorphism) in rust4,895MIT/Apache-2.0
typed_idsCreate unique identifiers for each type. This newtype approach helps to make illegal states unrepresentable by typing your unique…4,891MIT
drogue-bazaarA place to find tools for building your Rust application4,889Apache-2.0
switch_statementA simple switch statement macro4,888non-standard
ownershipObtaining ownership.4,882MIT
arc-io-errorA version of std::io::Error implemented on top of Arc instead of Box, making it
cloneable.4,867MIT/Apache-2.0
maplikeRust traits for abstract containers and operations over them.4,864MIT OR Apache-2.0
error-exa Rust crate designed for those who desire clear, explicit, and easy-to-use error creation and handling.4,863MIT
fallthroughPattern match with fallthrough, in the style of C switch4,860MIT OR Apache-2.0
facet-spezAuto-deref specialization helpers for the Facet reflection system4,860MIT OR Apache-2.0
ps-utilThis crate aims to provide generally helpful utility functions and traits.4,857GPL-3.0-or-later
macron-impl-errorThe implementation of trait Error4,842MIT
stackpinCrate for data that should be pinned to the stack at the point of declaration.4,841MIT OR Apache-2.0
lazy_thread_localLazily initialised per-object thread-local storage4,826MIT
macron-impl-displayThe implementation of trait Display4,820MIT
unit-procProcedual macros for physical quantities.4,814MIT OR Apache-2.0
ufcsHelper trait to call free functions using method call syntax4,811Unlicense OR MIT
macron-impl-intoThe implementation of trait Into4,804MIT
macron-impl-fromThe implementation of trait From4,803MIT
generic-upper-boundStable workaround for internal uses of generic-const-exprs4,803MIT
map_retryZero dependency trait that provides retry function that works with iterators4,798MIT
cifgA macro for defining #[cfg] if/else blocks; alternate to cfg-if.4,798MIT OR Apache-2.0
teletyAccess type information across crates and modules in your proc macros4,798MIT OR Apache-2.0
pinpointCrate for pinned references4,796MIT
fieldsetStruct to enum derivation4,792non-standard
ab-code-genFunctions to generate boilerplate code for objects implementing the 'Actor' pattern. Used by the abcgen crate.4,790MIT OR Apache-2.0
empty-boxAllows for `Box`s to have their values moved out and replaced with new values,
while reusing the same allocation.4,787MIT/Apache-2.0
lazy_refImplements a non-blocking synchronization primitive for lazy-initialized immutable references.4,779MIT
visita_macrosMacros for the visita crate4,778MIT
visit_diffEfficiently finding differences between data structures.4,777BSD-2-Clause
valuable_futuresUtils which allow writing futures::Future and futures::Stream by-value4,763MIT/Apache-2.0
adropSimple and fast dedicated thread drop.4,761Apache-2.0
type_eqTiny utils for type-level constraints and inference4,753MIT
korhahA minimal & extensible reactive event system4,744MPL-2.0
wherrorThe same derive(Error) macro thiserror provides + the features you want!4,739MIT OR Apache-2.0
thin_delegateAuto implementation of trivial delegation to inner types4,736MIT OR Apache-2.0
crosstraitCast from `dyn Any` to other trait objects, with no_std, no alloc support4,730MIT OR Apache-2.0
const-itUtilities for const evaluation; slicing, error handling4,729Zlib OR MIT OR Apache-2.0
format-likeMacro for creating format-like macros with any kind of output4,725AGPL-3.0-or-later
parcRust crate for cancellable time based contracts in async/await4,715MIT
typederrorA wrapper around anyhow that allows for a primary error type4,709MIT OR Apache-2.0
len_constraintsTraits and types to implement type-pinned length constraints in your API4,703BSD-2-Clause OR MIT
thalo-testingTest utils for crates.io/thalo4,701MIT OR Apache-2.0
read-fromSupplies the ReadFrom and WriteTo traits.4,681MIT OR Apache-2.0
repetitiveMacro for generating repetitive code4,676MIT
count_ttsA simple macro for counting tokens.4,673MIT
from_tup_macroLibrary for implement from tuple trait4,670MIT OR Apache-2.0
index_typeType-safe newtype indices for Rust4,665MIT OR Apache-2.0
repr-trait-deriveDerive macros for working with repr-trait4,657MIT
tyflingtodo4,656GPL-3.0
ghost-litecustom PhantomData types4,649MIT
index_arenaA simple, id-based, heterogeneous arena allocator4,644MIT OR Apache-2.0
tested-trait-macrosMacros for the tested-trait crate4,638MIT OR Apache-2.0
rocket_modulesA small crate that adds macros to conveniently organize Rocket route handlers in modules.4,636MIT OR Apache-2.0
packbytes-deriveDerive macros for the packbytes crate4,624MIT
structz-macrosProcedural macros implementation of structz4,616MIT OR Apache-2.0
awredA convenient derive macro for actix_web::ResponseError trait4,616MIT
yewdux-utilsErgonomic state management for Yew applications4,615MIT OR Apache-2.0
i18n_pattern-rizzen-yazstonThe `i18n_pattern` crate of the Internationalisation project.4,604BSD-3-Clause
proto-mapper-deriveInternal helper library for proto-mapper4,597MIT
check-versionsSimple crate for ensuring that version numbers in README files are
updated when the crate version changes.4,593MIT
embedded-error-chainEasy error handling in no-alloc and no-std environments4,592MIT
tokio-task-schedulerA non-blocking task scheduler for Rust with fluent API, supporting interval-based and cron-like scheduling4,584MIT
boundedBounded numeric types4,577MIT OR Apache-2.0
estuaryAn alternative cargo registry suitable for *small-scale* crate publishing and distribution.4,568Apache-2.0/MIT
intupleConvert structs and enums into tuples (of refs) and back - recursive, ignore fields4,567MIT OR Apache-2.0
zc_ioSimple zero-copy I/O.4,565MIT OR Apache-2.0
ref_iterDynamic borrowing iterator.4,562MIT OR Apache-2.0
paradis-corecore functionality for paradis4,558MIT OR Apache-2.0
functionA set of useful traits for your functional needs4,554MIT
bounded-counterGeneric Incremental Bounded Counter4,536MIT
headCommon types with inline headers, such as HeaderVec for Vec.4,525MIT OR Apache-2.0
abcgen-attributesProcedural macro attributes used by abcgen crate.4,524MIT OR Apache-2.0
chaos_theoryModern property-based testing and structure-aware fuzzing library4,509MPL-2.0
collect-allvec! for everything: easily make literals of any collection!4,505MIT
take-ifA tiny utility for conditionally taking the contents of an option.4,504MIT
nami-coreA powerful, lightweight reactive framework.4,500MIT
lazy_idA thread-safe lazily-initialized ID4,478Apache-2.0 OR MIT OR Zlib
stack-traitStack trait with entry API for the LIFO element.4,478MIT OR Apache-2.0
pin_arrayTiny crate providing an array with structurally projected pinning4,475MIT
valueType-level constants for generic contexts4,466CC0-1.0
cow2Like Cow<B>, but B is covariant4,463MIT
token-parser-deriveDerive macros to make structs parsable into tokens4,459MIT OR Apache-2.0
totally-orderedNo dependency, no-std totally ordered f32/f644,454MIT
allow_internalInternal proc macros, for 'allow' crate only4,454MIT OR Apache-2.0
sum_errorDerive macros for fast summing of error types into error enum.4,443MIT
sortedProvides compile time guarantees for sorted sequences.4,441non-standard
mauA Rust procedural macro library for memoization with MauQueue optimization4,431MIT OR Apache-2.0
bounded_typesProvides a type representing bounded integers, implemented using const generics.4,430MIT OR Apache-2.0
gurA undo-redo framework4,430MIT/Apache-2.0
scoped-callbackRegister scoped functions with local references to 'static lifetime callbacks in a safe manner4,428Apache-2.0
sixarm_assertAssert macros for Rust tests. By SixArm.com.4,428MIT OR Apache-2.0 OR GPL-2.0-only
erreurA tiny crate that facilitates error handling,
including tracing line numbers, customizing and propagating error messages.4,423MIT OR Apache-2.0
wibu-phdr-gapThe phdr gap guarantees WIBU Systems AxProtector to find enough space to install its tooling.4,423MIT
cb_futCall function that return value via callback without a callback4,422BSD-3-Clause
apply_methodAllows you to apply any function given as a parameter to the object.4,420MIT OR Apache-2.0
fstrings-rustPython3 fstring interpolation in Rust4,414MIT
composingTools to compose functions4,412MIT
nddNon De-Duplicated cell. For statics guaranteed not to share memory with any other static/const.4,396BSD-2-Clause OR Apache-2.0 OR MIT
mem-isolateContain memory leaks and fragmentation4,383MIT OR Apache-2.0
sameTraits for testing identity of objects.4,375MITNFA
edispDispatch-on-collect for Rust enums4,354MIT OR Apache-2.0
unsaefMacros to erase scope information from tokens4,343MIT OR Apache-2.0
lighter-deriveProcedural macros for the lighter crate4,343CC0-1.0
fn_chainHelper macro/function to create function chaining4,336BSD-3-Clause
throttled-readerAn io::Read proxy that limits calls to read()4,324MIT/Apache-2.0
mox-implImplementation for the mox! macro.4,319MIT/Apache-2.0
deferred-referenceA deferred reference is not an actual reference, it is merely a smart pointer tied to the lifetime of the location it points to.4,319MIT
checked_numOverflow-checked numbers for safety without sacrificing ergonomics.4,314MIT
const_power_of_twoA crate for working with constant generics that are powers of two.4,314MIT OR Apache-2.0
custom_error_coreDefine custom errors without boilerplate using the custom_error! macro.4,306BSD-2-Clause
wagGo like sync.WaitGroup implementation in Rust. (sync/async)4,299MIT OR Apache-2.0
seesawgenerate traits from C header files4,299Apache-2.0 OR MIT
exit_safelyexit safely with custom exit codes while still calling `Drop` as needed. Aims for minimal magic and maximum flexibilty.4,298MIT
derivateA set of alternative `derive` attributes for Rust4,296MIT/Apache-2.0
into_extExtension trait for the “Into” trait, offering a method “.into_::<T>()” to specify the target type of conversion.4,293MIT OR Apache-2.0
unwrap_returnA set of macros for returns and breaks in the None and Err cases.4,283non-standard
typemap-metaA simple compile-time macro to create type-to-value maps4,278MIT OR Apache-2.0
bachue-auto_implAutomatically implement traits for common smart pointers and closures4,271MIT/Apache-2.0
abcgenA procedural macro to generate boilerplate code for objects implementing the 'Actor' pattern4,267MIT OR Apache-2.0
read_chunksAn extension to the Read trait allowing easier chunked reading4,265MIT OR Apache-2.0
static-include-bytesLike the built-in `include_bytes!` macro but produces a static array definition.4,265MIT
pluralizeA generic trait across single and multiple elements4,265MIT
pmhelpA WIP library to assist in the creation of procedural macros.4,264MIT
loop_chainMacro for writing nested Loop expressions4,260MIT
peak-resultA simple trait that extends the standard Result enum to allow you to run some code in case of error or success.4,257MIT
prosto_deriveProcedural macros for proto_rs, Rust as a first-class citizen in the protobuf ecosystem4,256MIT OR Apache-2.0
cli-panicsMake your panics easy to read4,249GPL-3.0
trait-enumizer-deriveHelper crate for trait-enumizer4,244MIT/Apache-2.0
fat_typeA type which permits thin references to arrays and dynamic types.4,241Apache-2.0 OR MIT
hoist_temporariesProcedural macro to extend the lifetimes of temporary variables.4,240BSD-3-Clause
array-fuConstruct arrays using simple syntax4,239MIT OR Apache-2.0
roopert_macro_commonAnother object-oriented toolkit for Rust (common data)4,238MIT
simpledi-rssimpledi-rs, a simple and thread-safe dependency injection library4,225non-standard
slistAlgebraic lists with statically determined size that live on stack.4,225MIT
extdot-implPlease see `extdot` crate for actual usage4,222MIT OR Apache-2.0
collect-rsSpecial and custom Collections and Containers (for Rust)4,222BSD-3-Clause
proto-mapperA Macro library for easier mapping between custom models and proto generated code4,210MIT
unwrap_letA Rust macro for quickly unwrapping a refutable pattern.4,209MIT
momoA procedural macro to de-monomorphize generic methods4,208Apache-2.0
quitherA flexible enum-based utility for representing values that may be on the left, right, neither, or both sides.4,202Apache-2.0
zconvertenumnConvert number to enum4,195MIT OR Apache-2.0
fastpermA dead-simple, extreme fast permission flag system for Rust with no dependencies.4,195Apache-2.0
raise`yeet!` all the things4,184Unlicense OR CC0-1.0 OR MIT OR Apache-2.0
collections-fromstrDerives FromStr for collection types like Vec<T> or HashSet<T>.4,176MIT OR Apache-2.0
macron-strCreates a new instance of String4,170MIT
fuzzypathQuick & dirty fuzzy path comparison4,169MIT
intid-coreDefines the IntegerId trait without a dependency on intid_derive4,168MIT OR Apache-2.0
genies_config整合DDD与Dapr 的 config 库4,161MIT/Apache-2.0
repr-with-fallbackAutomatically generate From and Into impls for enums with custom discriminant values and a fallback variant. Useful for parsing…4,149MIT
gamoA Range like struct for user defined types4,149MIT
struct-padPadding types to enable memory layout optimizations.4,146Unlicense OR MIT
critical-section-lock-mutProvide locks for mutable data using `critical-section` crate.4,133non-standard
process-resultsprocess-results is a crate that provides the same functionality provided by
Itertools::process_results. It helps you process an…4,128MIT OR Apache-2.0
identifiersUtilities for working with rust identifiers and keywords.4,125MIT OR Apache-2.0
internalInternal fields in Rust.4,116MIT
lifelinkErase covariant lifetime parameters from anything, with generic associated types.4,109MIT OR Apache-2.0
constructor-liteGenerate minimal constructors for structs4,108MIT
fruit-saladCompare apples and oranges (and more). Trait object reference casting and trait object comparisons.4,107MIT OR Apache-2.0
directed-visitVisitor pattern with interchangable implementations for both the visit algorithm and node object traversal4,105MIT OR Apache-2.0
makeit-deriveA macro crate for makeit. Do not use this crate directly.4,104MIT
serde_hooksRuntime hooks for serde4,095MIT OR Apache-2.0
tested-traitAssociate tests with traits4,090MIT OR Apache-2.0
threadaloneMake any value Send + Sync but only available on its original thread. Don't use on multi-threaded environments!4,089MIT OR Apache-2.0
flow-controlDeclarative macros for common flow-control use cases such as break, continue, and return.4,084MIT
fmt_adapterProvides newtype adaptors to and from any formatting trait4,083CC0-1.0
futures-await-test-macro-previewHelper crate for futures-await-test-preview.4,081MIT
mvcc_cellSoftware-transactional memory for Rust4,079Apache-2.0
dep_crusherStarting at a root node, traverse the dependency graph and flatten it.4,070MIT OR Apache-2.0
crashlogPanic handling for humans4,070Apache-2.0
cf-gears-toolkit-canonical-errorsToolKit canonical error types based on Google AIP-193 error model4,066Apache-2.0
percolateYet another async utility library.4,063MIT OR Apache-2.0
disp_arrayThis adds a wrapper for arrays to give the 'Display' trait.4,059MIT OR Apache-2.0