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.
thalo-inmemoryIn-memory event store for crates.io/thalo8,501MIT OR Apache-2.0
tlistType-level linked lists (of types) and type-level 'functions' to manipulate them. Because TList is implemented using GATs, usage…8,498MIT
comfy-printNon-panicking versions of println! and friends. Async implementation.8,496MIT
match_anyProvides a declarative macro, that matches an expression to any of the patterns
and executes the same expression arm for any…8,474MIT OR Apache-2.0
tiny-ordered-floatTiny version of OrderedFloat8,463MIT OR Apache-2.0
reiteratorLazy repeatable caching iterator that only ever calculates each element once.8,460MPL-2.0
boulder_deriveMacros for the boulder crate8,438Apache-2.0 OR MIT
into-resultA simple convenience trait for converting something into a `Result` or `Option`8,417Apache-2.0/MIT
into_variantEasily convert your types into the corresponding enum variant8,409MIT OR Apache-2.0
multi_iterIterator for acting on multiple elements at a time8,403MIT
default-extThis library provides extension methods for the `Default` trait.8,401MIT OR Apache-2.0
typicType-safe transmutations between layout-compatible types.8,396MIT/Apache-2.0
vec_vecWhen dealing with `Vec<Vec<T>>` is unavoidable.8,390MIT OR Apache-2.0
hexga_toolsmiscellaneous stuff, when somethings will be too big it will be on a separate crate8,389MIT OR Apache-2.0
ensure_simdCompile-time check whether NEON or AVX2 is enabled8,386MIT
scientistoA light-weight Rust implementation of the github/scientist library used for careful refactoring of critical code paths.8,367MIT
maybe-uninit-extExtended maybe-uninit types8,358Unlicense
flexi_func_declarativeThis crate exposes the fb! macro to create a function with a flexible signature.8,356MIT
directorDirector is a simple, versatile, ergonomic state machine in Rust-lang.8,341MIT OR Apache-2.0
typed_macrosAdds typing to your macro's arguments, making it a lot less of a pain to deal with them.8,339MIT
nonicleTools for type-safe, canonical data representations.8,317MPL-2.0
bytemeConverts a struct into Vec<u8> and back. The conversion is Big Endian by default.8,298Apache-2.0
pfnProvide fn_trait's `call`, `call_mut`, and `call_once` on Stable Rust.8,288MPL-2.0
minionCrate for managing cancellable services8,285MIT/Apache-2.0
orx-closureAn explicit closure with absolute separation of the captured data from the function.8,282MIT
pisserrorA golden rip-off of thiserror8,269MIT
orderlessOrderless/named functions in Rust. `add!(b = 2); // 4`.8,263MIT
match-downcastA set of downcasting matching Rust macros.8,263Unlicense
strung_deriveproc-macro for strung!8,260MIT OR Apache-2.0
fieldx_plusDesign patterns built on top of fieldx crate8,247non-standard
bitpatBit-level matching against values8,226CC0-1.0
archwayRust traits for Rc and Arc interoperation8,211MIT
yewdux-functionalFunctional interface for Yewdux8,205MIT
dyn-dynFlexible trait object downcasting using ptr_metadata8,199MIT OR Apache-2.0
sod-crossbeamService Oriented Design - Crossbeam8,192MIT OR Apache-2.0
cvars-consoleIn-game console using the cvars crate for configuration - internal crate, use cvars-console-fyrox or cvars-console-macroquad in…8,177AGPL-3.0-or-later
culitCustom literals8,169MIT OR Apache-2.0
signalsA functional-reactive-like library for Rust that allows asynchronous chaining8,167MIT/Apache-2.0
fmttoolsTools for modifying text without allocating any intermediate buffers or unsafe code8,166MIT OR Apache-2.0
cvars-console-fyroxIn-game console for the Fyrox game engine, using the cvars crate for configuration8,149AGPL-3.0-or-later
drop-trackerCrate to check when a variable gets dropped. Useful for testing wrappers and containers that use unsafe memory management.8,147BSD-3-Clause
extfnCall any freestanding function as `a.foo(b)` instead of `foo(a, b)` just by adding `#[extfn]` and renaming the first parameter to…8,128MIT OR Apache-2.0
structx_deriveMacros for anonymous struct and named arguments.8,124MIT/Apache-2.0
sod-tungsteniteService Oriented Design - Tungstenite8,117MIT OR Apache-2.0
extract-variantDestructure expressions into, and return assignments from, a single pattern.8,100MIT OR Apache-2.0
litenumminimal convertion utilities between literal and enum8,093MIT
guest_cellStorage space for externally-owned private data8,093Apache-2.0
ferrunix-macrosProc-macro for ferrunix8,090MIT OR Apache-2.0
lens-rs_generatorgenerating optics for source files8,070MIT/Apache-2.0
macronComprehensive Rust macros toolkit for everyday development tasks. Includes convenient string formatting (str!), regex pattern…8,064MIT
respanMacros to erase scope information from tokens8,053MIT OR Apache-2.0
objectionableobjectionable storage of unsized types inline inside allocated objects8,052MIT OR Apache-2.0
fromitA super powerful macro for generating new structs with getters, setters, and `From` or `TryFrom` implementation based on the…8,050Apache-2.0/MIT
fnichol-cimeA demonstration of a Rust CI build/test/release workflow supporting
multi-platform testing, binary builds, Docker image building,…8,050MPL-2.0
syllogismUtilities to allow for some specialization using stable Rust.8,046MIT OR Apache-2.0
rs_envflagAn easy way to define flags by environment variables8,027non-standard
ownrefProvide the smart pointer type that bundles the data with its owner.8,019MIT
waitcellA cell type containing a value which may not yet be available.8,005Apache-2.0 OR MIT
tuplifyGeneric hlist/tuple library8,002BSD-3-Clause
fluent-implA procedural macro that generates chaining methods from non-chaining ones in an impl block7,983MPL-2.0
known-types-openaiWell-known types for OpenAI APIs.7,978Unlicense
chronograph-macrosMacros for chronograph lib7,940MIT OR Apache-2.0
funcmapDerivable functorial mappings for Rust7,939MIT OR Apache-2.0
boulderLike a builder, but heavier.7,928Apache-2.0 OR MIT
quick_fromA derive macro for quickly implementing From on on enum variants that wrap other types.7,923non-standard
dddk_securitySecurity module of dddk_core. Impl features regarding command_bus pattern and security7,918Apache-2.0
descriptive_toml_deriveProcedural derive macro for serializing a struct into a TOML template with field descriptions that is easily edited and…7,874MIT OR Apache-2.0
tildeUsing ~ to provide syntax sugar for Rust.7,870MIT
euxis-commonsShared Rust utilities and common patterns for the ecosystem.
Provides reusable components for error handling, configuration,
…7,863MIT OR Apache-2.0
thalo-postgresPostgres event store for crates.io/thalo7,827MIT OR Apache-2.0
dyngoType-safe dynamic (type-erased) generic outparams7,824MIT OR Apache-2.0
merge2_deriveDerive macro for Merge27,806MIT OR Apache-2.0
slockAn async mutex that never deadlocks.7,800MIT
alternating-iterProvide an iterator adaptor which alternate between two iterators.7,795MIT-0
ferrunixA lightweight run-time dependency injection framework for Rust7,794MIT OR Apache-2.0
namiA powerful, lightweight reactive framework.7,780MIT
turbononeSimple macro for calling functions with Option<T> arguments7,775MIT OR Apache-2.0
known-typesWell-known types.7,772Unlicense
parametrized-macroSupply useful iterating methods for user-defined types which are parametrized by type parameters7,710MIT
multicallMacro to simplify multiple operations or calls on a single object7,703MIT
symm_implAttribute macro that automatically implements a symmetric trait7,700MIT OR Apache-2.0
lifterrA small set of adapters extending Rust's error-handling capabilities7,688MIT
phlow-ffiProvides C-like api to the phlow crates7,687MIT
strungEasy access of struct fields in strings using different/custom pre/postfix: "Hello, {field}"7,685MIT OR Apache-2.0
typeboolType-level booleans meant for compile-time hackery.7,676MIT OR Apache-2.0
split_preserveAn iterator that splits on whitespace but doesn't throw it away7,670MIT
fastpeekA different way to peek iterators7,654MIT OR Apache-2.0
fully_pubMacro that makes multiple items or fields public at once7,642MIT OR Apache-2.0
near-safe-cellA more ergonomic 'UnsafeCell' wrapper/replacement.7,620MIT OR Apache-2.0
transition-tabletransition table utilities for keyword parser.7,583MIT OR Apache-2.0
cstr8string types that are both valid UTF-8 and nul-terminated7,581MIT OR Apache-2.0
dddk_coreTactical DDD framework based on command_bus, event_bus and query_bus. It offers annex feature such as authorization, logging ...7,576Apache-2.0
veccellProvides VecCell, a variant of Vec with interior mutability.7,569MIT OR Apache-2.0
subsetVarious subsets of slice's items that are able to iterate over references to selected items.7,563MIT
struct-variantMinimal helper macro to generate an enum out of a list of structs.7,558MIT
ood_persistenceAsynchronous and synchronous interfaces and persistence implementations for your OOD architecture7,517MIT OR Apache-2.0
serde_extraVarious de/serialization methods7,517MIT
macrofied-toolboxThis library provides an ergonomic experience of adding debugging messages to rust's Result<T,E> and Option<T> patterns7,514MIT
safe_cacheA key-value cache library in Rust featuring dynamic typing with support for multiple data types, automatic expiration, and…7,505MIT
ephemeroptAn ephemeral Option that reverts to None after some time7,498Apache-2.0 OR MIT
parametrizedSupply useful iterating methods for user-defined types which are parametrized by type parameters7,457MIT
nnnGenerate your newtypes from a single macro.7,448WTFPL
validusA string validation library7,438MIT
arr_tyMacros for smart array initialization.7,437MIT OR Apache-2.0
higher_order_functionsA small collection of traits for implementing higher order functions7,428MIT
errsA library for handling errors with reasons7,412MIT
event_iteratorAsynchronous lending iterator7,407Apache-2.0 OR BSL-1.0 OR MIT
sod-logService Oriented Design - Log Integrations7,405MIT OR Apache-2.0
assert_thatHelper macros for use with boolean-valued predicate functions.7,380MIT
tuple_splitAn extension for the tupleops crate which adds a trait for splitting tuples.7,377MIT
array_manipulationMethods for manipuling arrays in a Vec-like fashion. It will (probably) get into core once const expressions get less…7,346MIT
larcLazy Arc/Weak pointers7,331MIT OR Apache-2.0
typebitsetType-level bitset implementation7,309MIT
remitRust generators implemented through async/await syntax7,307MIT OR Apache-2.0
trait-unionStack-allocated trait objects7,306MIT OR Apache-2.0
phtmRe-exports for common uses of `PhantomData`7,301MIT OR Apache-2.0 OR CC-BY-4.0
outcome-46f94afc-026f-5511-9d7e-7d1fd495fb5cAugmentations for error propagation7,289MIT
shared_cellInterior mutability between concurrent tasks on the same thread7,282Apache-2.0 OR BSL-1.0 OR MIT
thisterminationA library crate to add the Termination trait to error enums inspired by thiserror7,273MIT
oak-macrosProcedural macros for the Oak framework to simplify parser and AST definition.7,269MPL-2.0
drv-macrosProc macros for drv7,264MIT OR Apache-2.0
sumtype-macroGenerate zerocost anonymous sum types that implement common traits7,264MIT
genies整合DDD与Dapr 兼容基于 Eventuate 的Java 项目7,215MIT/Apache-2.0
poison-guardUtilities for maintaining sane state in the presence of panics and failures.7,213MIT OR Apache-2.0
fp-libraryA functional programming library for Rust featuring your favourite higher-kinded types and type classes.7,211BlueOak-1.0.0
drvDerived, memoized values over plain structs7,210MIT OR Apache-2.0
pipingPipeline syntax in Rust. `4isize |> double(__) |> __ as usize`.7,204MIT
incompleteProvides incomplete!(), a compile-time checked version of unimplemented!()7,198MIT/Apache-2.0
easy_nodeSmart pointer for graph nodes.7,188MIT OR Apache-2.0
type_descriptionMachine-readable type descriptions7,183MPL-2.0
conventusTraits for assembling and disassembling items7,180MIT
remove_macro_callAttribute macro that removes a call of a function-like macro7,175MIT OR Apache-2.0
array_iter_toolsModify simple arrays7,166MIT
workspacer-readme-writerAutomates the generation of README.md and Cargo.toml fields using AI to enhance documentation quality in Rust projects.7,158MIT
atom_boxA safe idiomatic Rust implementation of Atomic Box using hazard pointers7,153MIT OR Apache-2.0
workspacer-check-privateEnsures that a Rust crate is not marked as private before cargo publish, leveraging the async programming capabilities of Rust…7,145MIT
paradisParallel processing with disjoint indices7,132MIT OR Apache-2.0
enum-procsUseful enum macros.7,127MIT
enum_discriminantProcedural macro to add functions on enum types to get discrimnant value from variant or create
unit variant from discriminant…7,126MIT
workspacer-detect-circular-depsA Rust crate to construct and analyze dependency trees within a workspace, identifying circular dependencies using cargo metadata.7,121MIT
target-feature-dispatchEasy dispatching by target features (both static and dynamic)7,100MIT
director_coreDirector is a simple, versatile, ergonomic state machine in Rust-lang.7,099MIT OR Apache-2.0
workspacer-workspace-mockA flexible mock framework to simulate and test Rust workspace environments, supporting various configurations for testing.7,083MIT
desaturateThis package aims to makes it easier to maintain a single code base for both regular and async functions.7,071MIT OR Apache-2.0
eternal_iteratorTrait implementation to promise that the iterator iterates forever.7,069MIT
const-array-attrsAttribute macros for const array.7,065MIT OR Apache-2.0
validated_newtypeSimple newtypes with checked predicates (primarily for serde)7,046MIT
thread-scoped-refA library that is similar to a thread local storage but allows to store references / dyn Trait within a scope.7,033MIT OR Apache-2.0
slow-scan-printText is printed at fixed intervals by character or by line, and its name is inspired by SSTV (Slow Scan Television).7,030MIT
yewdux-middlewareA Redux-like middleware for Yewdux.7,020MIT OR Apache-2.0
sod-actix-webService Oriented Design - Actix Web7,017MIT OR Apache-2.0
iter-scanIterator scan methods that don't suck6,977MIT
stillwaterPragmatic effect composition and validation for Rust - pure core, imperative shell6,966MIT
async-backplaneSimple, Erlang-inspired reliability framework for Rust Futures.6,962MPL-2.0
explicit-errorExplicit concrete Error type for binary crates6,957Apache-2.0
descriptive_toml_derive_macroPublished through descriptive_toml_derive. Procedural derive macro implementation for serializing a struct into a TOML template…6,952MIT OR Apache-2.0
workspacer-add-internal-depFacilitates adding internal dependencies between crates within a Cargo workspace asynchronously with `toml_edit` for robust…6,949MIT
checked_arrayA checked API for array types6,937BSD-2-Clause OR MIT
strunemixStrunemix allows to build a struct with a form of its fields, by deriving enums of them6,936MIT
plumbA functional, async pipeline framework6,932non-standard
he_diDependency Inversion / Dependency Injection / Inversion of control container for Rust6,927MIT/Apache-2.0
tartan-bitfieldDefine structures with accessors for particular bits or bit ranges6,923MIT OR Apache-2.0
pipex-macrosProcedural macros for the pipex crate - error handling strategies and pipeline decorators6,907MIT
eoeThis crate provides utilities for exiting processes on errors gracefully.6,901MIT
variadic_genericsA first attempt in using traits & tuples to work around Rusts lack of variadic generics.6,895MIT
drop-binDefer running expensive destructors until later6,879MIT OR Apache-2.0
mstrMStr is a 2-word, immutable Cow<str>6,878MIT OR Apache-2.0
code-spellsAliases some common (and less common) code snippets to macros named after thematically appropriate spells from Harry Potter, so…6,877MIT OR Apache-2.0
comfy-bounded-intsBounded-integer types focused on ergonomics and safety. (See README.md)6,854MIT
entrypointopinionated application framework/wrapper that eliminates main function boilerplate6,849MIT
component-futureimplements the inner future protocol documented in the tokio docs6,845MIT
ourErgonomic, highly generic wrapper for shared mutable data6,829Unlicense
one-ofMacro to represent a type that can be converted either `From` or `TryInto` the given types6,821MPL-2.0
he_di_deriveCode generation for he_di dependency injection / inversion of control framework6,816MIT/Apache-2.0
singleton-cellA more powerful Ghost Cell allowing the use of any singleton as the key6,807MIT
smart-stringA collection of string types and traits designed for enhanced string manipulation.6,797MIT/Apache-2.0
threadstackA more ergonomic and more flexible form of thread local storage.6,781MIT
tower-resilience-bulkheadBulkhead pattern for Tower services - resource isolation and concurrency limiting6,774MIT OR Apache-2.0
rootcause-backtraceBacktraces support for the rootcause error reporting library6,768MIT/Apache-2.0
workspacer-name-all-filesRecursively scans directories for Rust source files, manages file markers, and integrates with workspace environments using…6,765MIT
davenportErgonomic thread-local workspaces for intermediate data6,764MIT OR Apache-2.0
workspacer-docsProvides an async interface to run `cargo doc` within Cargo workspaces, facilitating Rust documentation generation.6,759MIT
hodgepodgeLightweight dataset crate of enums for prototyping, teaching, and experimentation6,747MIT OR Apache-2.0
pochitaA allocation arena for Rust.6,723MIT/Apache-2.0
tyenumAttribute macro for type enums.6,674MIT
dyn-errorError-related utilites for Rust6,669MIT
twilight-errorError handling utility for the Twilight ecosystem6,666MIT
summum-typesA sum-type macro crate with all the conversions, accessors, and support for abstract methods across variants, and…6,642MIT OR Apache-2.0
docgenRust library made for dynamically documenting Rust items created by a macro.6,638MIT
wp-errorStructured, domain-specific error types and robustness strategies extracted from WarpParse6,629Elastic-2.0
mrogalski-looperClean abstraction for a single-threaded event loop. Built as a lightweight wrapper around the std::sync::mpsc package.6,626Apache-2.0
cvars-console-macroquadIn-game console for the macroquad game engine, using the cvars crate for configuration6,610AGPL-3.0-or-later
valustA data validation library for Rust6,607MIT OR Apache-2.0
transaction-dieseltransaction abstraction of diesel6,601MIT
minsizeCollections with a statically known minimum size (using const generics)6,595MIT OR Apache-2.0
see_deriveA sub-module for providing proc-macros for the `see-through` crate6,583non-standard
dabusDynamic Aplication Controll Bus - an asynchronous, event based module system for thoes who want to move fast and *not* break…6,573MIT
lazyonceUse std::cell::OnceCell instead6,571CC0-1.0
director_macrosDirector is a simple, versatile, ergonomic state machine in Rust-lang.6,570MIT OR Apache-2.0
valust-deriveA derive macro for the Valust crate6,568MIT OR Apache-2.0