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.
featurecombDefine feature groups and enforce relations between Cargo features from your manifest69,836MIT OR Apache-2.0
bufiostd::io::Write for your potentially uninitialized slice of memory.69,287Apache-2.0 OR MIT
static-keysReimplement Linux kernel static keys for Rust userland applications.68,934MIT OR Apache-2.0
tokio-contextContexts for cancelling asynchronous tasks using tokio68,588MIT
boxarraySafe way to allocate and initialize nested arrays directly on the heap in Rust.68,128MIT
foreignConversion between foreign and Rust types68,012MIT OR Apache-2.0
miden-thiserrorderive(Error) with no-std support67,829MIT OR Apache-2.0
relativeA type to wrap vtable references such that they can be safely sent between other processes running the same binary.67,687MIT OR Apache-2.0
featurecomb-schemaSchema of featurecomb's metadata subtable67,532MIT OR Apache-2.0
char-deviceCharacter Device I/O66,867Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
filtersBuild filters/predicates with the builder pattern66,865MPL-2.0
facet-pathPath tracking for navigating Facet type structures66,455MIT OR Apache-2.0
bitcoin_uriRust-idiomatic, compliant, flexible and performant bitcoin URI crate.66,147MITNFA
develaA development substrate of coherence.65,884MIT OR Apache-2.0
refined_typeA library for imbuing rules into types and elevating them to more robust types64,950MIT
metatypeHelper methods to determine whether a type is `TraitObject`, `Slice` or `Concrete`, and work with them respectively.64,917MIT OR Apache-2.0
smelling_saltsAbstraction over OS APIs to handle asynchronous device waking64,765Apache-2.0 OR BSL-1.0 OR MIT
stackbox`&own`ing references in stable Rust - no_std-friendly Box64,191Zlib OR MIT OR Apache-2.0
itermapIterator tools for maps (`HashMap`, `BTreeMap`, etc.)63,282Apache-2.0
panickingProvides a `std::thread::panicking` analog available in the `no_std` context.63,176MIT OR Apache-2.0
indexingSound unchecked indexing using “generativity”; a type system approach to indices, pointers and ranges that are trusted to be in…62,794MIT/Apache-2.0
duplexThe Duplex trait: interactive streams62,587Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
anyinputA macro for easier writing of functions that accept any string-, path-, iterator-, array-, or ndarray-like input62,257MIT OR Apache-2.0
as-resultTraits for converting types which may be interpreted as or into a result.62,150MIT OR Apache-2.0
tiny_bailSmall but flexible macros for bailing on failure.62,133MIT OR Apache-2.0
idmapEfficient maps of integer id keys to values, backed by an underlying `Vec`61,939MIT OR Apache-2.0
anyinput-coreAn internal helper library of anyinput61,244MIT OR Apache-2.0
byte_readerA minimal byte-by-byte reader for parsing input61,091MIT
fn_nameMacros that produce the name of the function they're invoked within.61,083MIT/Apache-2.0
anyinput-deriveAn internal helper library of anyinput60,728MIT OR Apache-2.0
nonasyncA set of utilities useful for building a non-blocking non-async APIs60,651Apache-2.0
rsorReusable slice of references58,694MIT OR Apache-2.0
tokenlockProvides cell types that decouple permissions from data.58,563MIT/Apache-2.0
field_typesSome derive macros for deriving enums, corresponding to the fields of structs.57,900MIT
facet-solverConstraint solver for facet - resolves type shapes from field names57,681MIT OR Apache-2.0
reactive-mutinyasync Event-Driven Reactive Library with advanced & optimized containers (channels) and Stream executors57,377Unlicense
pretty-error-debugIf the process ends with an `Error`, write out the `Error` message and chain.57,184MIT OR Apache-2.0
nest_structNest struct and enum definitions with minimal syntax changes56,220MIT
comparatorA Java-like Comparator type56,170MIT OR Apache-2.0
enum_downcastSafe downcasting for enums55,797MIT OR Apache-2.0
zip_cloneZip an iterator to a repeatedly cloned object55,646MIT OR Apache-2.0
into-sortedCollection of utility methods and functions that take an owned array and return a sorted owned array55,249MIT
maconAnother builder macro-based generator with its own idioms.54,935MIT OR Apache-2.0
web-time-compatCompatibility layer for web-time54,347MIT OR Apache-2.0
tryvialSmall crate for ok-wrapping and try blocks54,171MIT OR Apache-2.0
orx-imp-vec`ImpVec` stands for immutable push vector 👿, it is a data structure which allows appending elements with a shared reference.54,057MIT OR Apache-2.0
io-streamsUnbuffered and unlocked I/O streams53,975Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
lit2Collection helper libraries and “literal” macros for HashMap, HashSet, BTreeMap, and BTreeSet.53,657MIT/Apache-2.0
smooth-operator-implProcedural macro that transforms regular infix arithmetic expressions into checked arithmetic expressions.53,602MIT
enhanced_enumEnhanced Fieldless Enumerations and Associated Array Types.53,505MIT OR Apache-2.0
smooth-operatorProcedural macro that transforms regular infix arithmetic expressions into checked arithmetic expressions.53,382MIT
num-runtime-fmtFormat numbers according to a format spec determined at runtime.53,132GPL-3.0-only
format-coreCore format types53,128MIT OR Apache-2.0
semvalSemantic validation52,646MPL-2.0
futures-awaitAsync/await syntax for Rust through a procedural macro. This crate defines the
`#[async]` macro for functions, the `await!` macro…52,628MIT/Apache-2.0
format-macroFormat procedural macro52,362MIT OR Apache-2.0
validatedThe cumulative sibling of `Result` and `Either`.52,056MIT
zyn-coreCore AST, traits, and utilities for the zyn proc macro framework52,021MIT
zyn-deriveProc macros for the zyn framework51,939MIT
attrsAn ergonomic parser library for `#[attributes]`, built on parser combinators.51,926MIT OR Apache-2.0
anymoreAnyDebug: Dynamically typed values which can be inspected51,903Apache-2.0 OR MIT
zynA proc macro framework with templates, composable elements, and built-in diagnostics51,894MIT
formatA utility crate to make it easier to work with the formatter51,551MIT OR Apache-2.0
enum-derive-2018This crate provides macros for deriving additional functionality for enums.51,425MIT OR Apache-2.0
abscissaApplication microframework with support for command-line option parsing,
configuration, error handling, logging, and terminal…51,322Apache-2.0
collateTraits and a data structure to support collation and bisection51,091Apache-2.0
copy_from_strAn extension trait to copy a string into another string51,017MIT OR Apache-2.0
endiannezzZero dependencies library for I/O endianness on high-level50,615MIT
destreamLibrary for async stream (de)serialization50,329Apache-2.0
h10Simple HTTP/1.0 Server50,079MIT
wrapped-vecMacro for generating wrapped Vec types and associated boilerplate49,946MIT OR Apache-2.0
rev_sliceA newtype for operating on a reversed view of a slice.49,926MIT
arrcatArray concatenation49,488Zlib
cpsAssists in the creation of readable and maintainable macro_rules! macros48,857MIT
iter-identify_first_lastA helper iterator, flagging first and last elements.48,773MIT OR Apache-2.0
casualSimple crate for parsing user input.48,057MIT OR Apache-2.0
amongA general purpose sum type with three cases: the enum `Among` with variants `Left`, `Middle` and `Right`. A three-way counterpart…48,051MIT OR Apache-2.0
destruct-drop-deriveActual derive macro for destruct-drop.47,860MIT
r-exZero-bloat Rust core library extensions47,795MIT
nbioNon-Blocking I/O47,729MIT OR Apache-2.0
srmwAsynchronous single-reader, multi-writer47,553MIT OR Apache-2.0
bind_matchConvenience macro similar to `matches!` but binds to variables in the pattern and returns an `Option` of the result.47,336MIT
zero4rszero4rs is a powerful, pragmatic, and extremely fast web framework for Rust47,282MIT/Apache-2.0
uniplateSimple, boilerplate-free operations on tree-shaped data types47,182MPL-2.0
unwrap_orFour easy unwrap Result and Option macros that allow for any inline-scoped code for things like return, continue, and break.47,080non-standard
iocAn Inversion-of-Control library in Rust.47,046MIT
isntInverted versions of boolean-valued stdlib functions46,584MIT OR Apache-2.0
chainerrorMake chaining errors easy.46,543MIT OR Apache-2.0
expandMacro to expand byte string and string literals46,415MPL-2.0
unstringifyProcedural macro implemention of the reverse operation of `stringify!`46,382Zlib OR MIT OR Apache-2.0
vector2mathTraits for doing 2D vector geometry operations using standard types46,272MIT
coercible_errorsZero-cost error handling for generic traits46,195CECILL-C
optemptyTools for working types that may be empty. E.g., an empty `String`, `Vec`, `HashMap`, etc.46,194Apache-2.0
destruct-dropMacro for dropping the fields of a struct or enum without dropping the container.45,851MIT
quixutilsCommon helpers and utils45,260Apache-2.0
entraitLoosely coupled Rust application design made easy44,977MIT
arraygenDerive macro for generating arrays from struct fields.44,535MIT
marketInfrastructure for producers and consumers43,757MIT
swiss-army-knifeCommon utility code to support linux-support and other projects43,636AGPL-3.0
perfect-deriveProvides a prototype of the proposed perfect_derive macro43,502MIT
min_err_per_stepDear Dev, it's math lib for Rust to calc basic funcs w/ minimal error per step [kiss principle been at the very heart].43,474non-standard
as-isAn abstraction over ownership.43,377MIT OR Apache-2.0
spire_enum_macrosProcedural macros distributed by the crate `spire_enum`.43,343MIT
domain_patternsDomain patterns holds patterns from the world of Domain Driven Design.43,303MIT
pinned_vecVec-like data structure whose elements never move.43,282MPL-2.0
linked_list_r4lLinked lists that supports arbitrary removal in constant time43,082GPL-2.0-or-later
orx-linked-listA linked list implementation with unique features and an extended list of constant time methods providing high performance…43,008MIT OR Apache-2.0
rst_lexSimple lexer for Rust42,485non-standard
layered-ioI/O traits extending Read and Write42,436Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
safecastTraits to define safe casting between types42,402Apache-2.0
entrait_macrosProcedural macros reexported by entrait41,734MIT
enumxAd-hoc enum extension.41,647MIT
async-flowAsync abstractions for flow-based programming (FBP).41,631Unlicense
devela_macrosprocedural macros for devela41,024MIT OR Apache-2.0
orx-selfref-colSelfRefCol is a core data structure to conveniently build safe and efficient self referential collections, such as linked lists…40,873MIT OR Apache-2.0
concrete-typeA procedural macro crate for mapping enum variants to concrete types, enabling type-level programming based on runtime values40,782MIT
value-traitsBy-value slices and iterators40,533Apache-2.0 OR MIT
spire_enumProcedural macros to facilitate enum usage, such as when delegating implementations, extracting variant types, or creating enum…40,113MIT
heterobLibrary for conversion between bytes/bits and heterogeneous lists (tuples)39,989MIT
enumx_deriveMacros for ad-hoc enum extension39,936MIT
not_emptySlices and vectors that are statically guaranteed to be not empty.39,551MIT OR Apache-2.0
problemError handling for command line applications or prototypes39,404MIT
entity_dataA container for entity component data.39,157non-standard
smallnumCompile-time size optimization for numeric primitives.39,091MIT
thin_strA string type that's smaller than `Box<str>` or String38,459MIT/Apache-2.0
cexChecked exception simulation.38,452MIT
tuple-transposeTranspose tuple of results and options to result and option of tuple38,446MIT
eventasticEventastic is an opinionated fork of Eventually-rs. It enforces the use of transactions and handles idempotency.38,435MIT
domain_derivedomain_derive holds derive macros for the domain_patterns crate.38,263MIT
cex_deriveMacros for checked exception simulation38,260MIT
trace-errorExtensions to Rust's error system to automatically include backtraces38,236MIT
imgref-iterA small crate for iterating over the rows or columns of `imgref` buffers38,172MIT
fgoxideUtility/QoL code for writing command-line / file processing tools.38,110MIT
guilt-by-associationMacro for declaring/implementing traits with fake associated consts (in stable Rust)37,886MIT
auto-impl-opssemi-automatic implementation proc-macro for binary operations37,769AGPL-3.0-or-later
maybe_pathZero overhead static initializer for Path37,741MIT OR Apache-2.0
alone_eeSmall event emitter for rapid development of weak dependency in applications. simple. powerful. predicted37,569GPL-3.0
lock-hierarchyPrevent dead locks by enforcing lock hierarchies37,419MIT
pod-enum-macrosAn enum which is also plain-old-data - proc macros37,393MIT OR Apache-2.0
fieldStatically-verified struct field names as strings.37,016MIT OR Apache-2.0
anyhow_extExtension of anynow37,001MIT
pod-enumAn enum which is also plain-old-data36,887MIT OR Apache-2.0
borrowme-macrosThe missing compound borrowing for Rust.36,848MIT OR Apache-2.0
cryoExtend the lifetime of a reference. Safely.36,839MIT/Apache-2.0
web3_rust_wrapperweb3_rust_wrapper36,659MIT
derive-debug-extrasMore customisable #[derive(Debug)]36,542MIT
borrowmeThe missing compound borrowing for Rust.36,360MIT OR Apache-2.0
iter_fixedIterator of fixed length36,290MIT OR Apache-2.0
io-reactorConcurrent I/O resource management using reactor pattern36,264Apache-2.0
topoTools for incrementally computing repeated callgraphs.36,154MIT/Apache-2.0
axinA Rust procedural macro library for function instrumentation36,018MIT
heck-but-macrosA proc macro wrapper around the heck crate, so that its casing functions can be applied to identifiers. Also contains a…35,935MIT OR Apache-2.0
playwright-rs-macrosCompile-time-validated selector macros for playwright-rs35,815Apache-2.0
run-on-dropRun code when an object is dropped35,459MIT OR Apache-2.0
known-errorsWell-known errors.35,421Unlicense
ptr-unionPointer union types the size of a pointer by storing the tag in the alignment bits.35,387MIT OR Apache-2.0
graphql-starter-macrosMacros for graphql-starter crate35,373MIT
better-asExplicit type casting35,258MIT
batch_operbatch_oper provides some batch operation macro for some operations35,197MIT
file_rwA library for high-performance, memory-mapped file I/O utilities.34,677GPL-3.0-or-later
array__opsA selection of useful array operations34,594MIT
fixed_len_strA procedural macro for create a smart pointer to str backed by a fixed size array,with the size given by the tokens.34,551Unlicense
statusError container34,456MIT OR Apache-2.0
as_reprRust trait for constant `#[repr(T)]` conversions34,212Apache-2.0 OR BSL-1.0 OR MIT
ddd-rsDomain-Driven Design (DDD) building blocks, for Rust applications.34,162MIT
option-filterOption::filter polyfill for Rust 1.26 and older34,130MIT/Apache-2.0
query-params-macroA procedural macro for easy use of arbitrary structs as query parameters in Hyper34,126MIT
atomicellMulti-threaded RefCell on atomics33,918MIT OR Apache-2.0
statumRepresent workflow and protocol state correctly in Rust by making invalid states unrepresentable33,601MIT
graphql-starterGraphQL starter kit33,537MIT
sync-cell-sliceCells and slices that are accessible from multiple threads33,464Apache-2.0 OR MIT
maplit2Collection helper libraries and “literal” macros for HashMap, HashSet, BTreeMap, and BTreeSet.33,444MIT/Apache-2.0
to-query-paramsA procedural macro and trait for easy use of arbitrary structs as query parameters in Hyper33,432MIT
utf8_sliceLightweight UTF8 Slice Utilities33,431MIT
ai-descriptorProvides a proc macro we can use to annotate enums for facilitating itemization and description using an AI model33,401MIT OR Apache-2.0
try-lazy-initFallible lazy initialization.33,144Apache-2.0/MIT
rootcause-tracingTracing span support for the rootcause error reporting library33,138MIT/Apache-2.0
cfgeniusConditional compilation with macro support in Rust32,898MIT
debug-fnA function adapter that implements Display and Debug32,746MIT OR Apache-2.0
keen-retryRetry-as-a-value: zero-cost, ownership-friendly retries with diagnosable outcomes with full async and lib/app boundaries support32,720Unlicense
build_uuidObtain a UUID uniquely representing the build of the current binary.32,473MIT OR Apache-2.0
fn-traitsProvides function traits like the standard library ones, but can be used in stable Rust.32,427MIT
negative-implNegative trait implementations on stable Rust.32,179Apache-2.0 OR MIT
messagesRuntime-agnostic actor library.32,000MIT
hlist2Compile-time heterogeneous list implementation31,500MIT OR Apache-2.0
tc-errorTinyChain's generic error struct31,349Apache-2.0
async-lazyA value which is initialized on the first access, with an async function.31,348MIT OR Apache-2.0
error-contextMethods and types that help with adding additional context information to error types31,339MIT
checked_opsAutomatic checked arithmetic operations in Rust31,279BSD-2-Clause
startupTiny (no dependency, no proc macro) way to run some code before main.31,083Apache-2.0 OR MIT OR Zlib
onlyerrorObsessively tiny error derive macro30,947MIT
ownable-coreTraits for structs/enums with Cow, which can convert Type<'a> to Type<'static> and more30,947MIT OR Apache-2.0
random-constructible-deriveProvides a derive macro for the random-constructible crate which is used for creating random instances of enums with weighted…30,736MIT OR Apache-2.0
cargo-toml2`Cargo.toml` and `.cargo/config` parsing stuff30,601MIT OR Apache-2.0
timesTiming Benchmark, Repeated Runs, with Statistics30,518BSD-3-Clause
illicitAn implicit thread-local environment which is indexed by type.30,381MIT/Apache-2.0
bump-intoa no_std bump allocator sourcing space from a user-provided slice30,344MIT OR UPL-1.0
is_none_orA simple utility function for the Option type30,222MIT OR Apache-2.0
proc-macro-toolSome common simple tool for proc-macro impl30,004MIT
partial_derive2makes all the properties of a struct type an optional property29,859MIT