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.
iter-indexMore flexible alternative to Iterator's enumerate() method2,467MIT OR Apache-2.0
sql-table-macrosHelper macros to generate SQL table definitions2,466MIT
opticsA no_std-compatible optics library providing composable lenses, prisms, isomorphisms, and fallible isomorphisms.2,465MIT OR Apache-2.0
const-utilStable implementations for some missing const functions2,463MIT
dupleproof of concept library with methods generic over the tuple length2,462GPL-3.0
into_indexHelper traits allowing indexing into vectors and similar types by other types than `usize`2,458MIT OR Apache-2.0
ferrous-diType-safe, performant dependency injection for Rust, inspired by Microsoft.Extensions.DependencyInjection2,457MIT OR Apache-2.0
sectorA stateful vector implementation that provides different memory management behaviors through Rust traits and state machines.2,448MIT OR Apache-2.0
dowhile_rsDo while macro for rust with labels and nesting support2,446MIT
typologyType derivation for foreign use2,444MIT OR Apache-2.0
standout-seekerGeneric query engine for filtering Rust struct collections2,435MIT
atomr-agents-callableCallable trait unifying agents, workflows, tools, and harnesses.2,429Apache-2.0
sized-dstOwned container for dynamically-sized types backed by inline memory2,428MIT OR Apache-2.0
valust-regex-utilsRegex utilities for the Valust crate2,424MIT OR Apache-2.0
include-zstd-deriveProcedural macro implementation for include-zstd compile-time compression macros.2,417MIT
memsizesType-safe memory size newtypes (Bytes, KiB, MiB, GiB, TiB, PiB, EiB, KB, MB, GB, TB, PB, EB) with checked conversions and…2,412MIT
rstaredSimple decorator that adds rstar::RTree to arbitrary collections.2,410MIT OR Apache-2.0
proc-state-macroSustain global variables between individual proc-macro call2,409MIT
helper_fnA macro to create closure-like helper functions.2,404MIT
miniconf_cliMenu/CLI for Miniconf2,398MIT
errloc_macrosError location utility macros2,382Apache-2.0
reproSupport crate for cargo-repro, a tool for building and verifying
Rust packages that are reproducible byte-for-byte…2,379Apache-2.0 OR MIT
yo_netwatchA reactive network status monitor for egui apps. Inspired by Flutter's connectivity_plus, built with Rust by Yo (Yogi).2,377MIT
shared-rcRc wrapper which can separate the data from the reference count2,373MIT OR Apache-2.0
undoredoUndo/Redo (and delta encoding) in Rust using deltas, snapshots or commands with convenience implementations for many standard and…2,371MIT OR Apache-2.0
u9Unsigned 9-bit integer type.2,364MITNFA
atomiclock_spinlockA simple spinlock2,364MIT OR Apache-2.0
option_either_orOption into Either conversion2,364MIT OR Apache-2.0
derive_try_fromderive(TryFrom)2,363MIT OR Apache-2.0
include-zstdCompress data at compile time and include it as runtime-decompressible static bytes or strings.2,362MIT
ascasA simple fast maths Parser2,361MIT
utils-plugs-procproc macro for crate `utils-plugs`2,361MIT OR Apache-2.0
deep-struct-updateStruct update syntax with nesting.2,360MIT OR Apache-2.0
algtypeConversion between data and its representation, like Haskell Generic2,352MIT OR Apache-2.0
devela_base_allocbase alloc shared functionality for devela2,348MIT OR Apache-2.0
fancy-default-deriveA better `derive(Default)` implementation.2,335MIT OR Apache-2.0
to-displayA trait that is Display or can be converted to Display2,330MIT OR Apache-2.0
namedProcedural macro which allows you to produce functions which can be called with named arguments, optionally with default values.2,327BSD-3-Clause
ganJust do it! A small tool provides ergonomic value handling with ignore/ ok/ some semantics.2,321MIT
yewdux-inputInput layer for Yewdux2,316MIT OR Apache-2.0
unsafe-alias-cellPrimitive for aliasing mutability2,308MIT OR Apache-2.0
derive_constructors_procDeriving From, TryFrom and create new_with_*args* functions.2,301non-standard
tiselEffective type-based pseudodynamic dispatch to impls, enums and typeid2,300MPL-2.0
libmw-macroLibrary for constructing a pipeline of middleware functions2,295MIT
field_iterator_deriveProc-macro for field_iterator2,294MIT
ty-tagTypeId for lifetime containing types via type tags.2,293MIT OR Apache-2.0
ident-strA macro to convert string literals into identifiers2,290Apache-2.0
unstdA little utility belt.2,289MIT OR Apache-2.0
pin-macrosThis library is primarly used to simplify the proccess of working with self-referencial structures.2,282MIT
derailAn alternative to `core::error::Error`.2,278MIT OR Apache-2.0
yoshiEntry for the Yoshi error framework.2,276MIT OR Apache-2.0
devela_base_stdbase std shared functionality for devela2,274MIT OR Apache-2.0
serde-textualderive Display/FromStr by using serde2,270MIT OR Apache-2.0
CuPsDear Dev, this lib to make custom pointers to amend RowHammer-related issues [kiss principle been at the very heart].2,270non-standard
common_regex_rsSet of common regex for Rust.2,266non-standard
lgioLightweight, generic, no_std IO.2,257MITNFA
known-types-rubygemsWell-known types for RubyGems.org APIs.2,257Unlicense
enum-conversion-deriveProdedural macros for deriving From and TryFrom traits on enums.2,257GPL-2.0-or-later
include-firstProc macro to evaluate include_str! macros early.2,256MIT OR Apache-2.0
uor-prismThe Prism standard library (wiki ADR-031): a façade re-exporting uor-foundation's substrate plus the Layer-3 sub-crates…2,256MIT
rinf-routerRouter and handler framework for RINF-based Flutter <> Rust apps2,248Apache-2.0
tracks-hustA way to embed Rust into HTML code and use it wherever you'd like.2,246MIT
known-types-pypiWell-known types for Python Package Index (PyPI) APIs.2,241Unlicense
box-iterSimple crate that provides an iterator for `Box<[T]>` types.2,238MIT
tanyType-erased container with inline storage for small values2,238MIT OR Apache-2.0
libriusA personal library manager CLI written in Rust.2,230MIT
struct_cache_fieldProc macro for caching method to struct field2,225MIT OR Apache-2.0
rasterizationIterator and iterator adapters for rasterizing a circle and its parts.2,218MIT
dont_panic_sliceSlice that causes link error instead of panicking.2,216MITNFA
psA safe wrapper around `std::mem::transmute`2,215MIT OR Apache-2.0
token-ref-cellInterior mutability cell using an external token to synchronize accesses2,207MIT
ip-macroMacros for writing literal IP addresses2,192MIT/Apache-2.0
tux-owned-allocA crate to help reducing manual memory management errors.2,187MIT
cevAn expandable data array used to add data to the beginning of the array.2,184MIT
state_maschineA State Machine Framework written in Rust.2,181MIT OR Apache-2.0
proc-stateSustain global variables between individual proc-macro call2,179MIT
qubit-datatypeRuntime data type descriptors and conversion utilities for Rust2,172Apache-2.0
supply-chain-trust-example-crate-000052A lightweight version of pin-project written with declarative macros.2,171Apache-2.0 OR MIT
tartan-c-enumDefine FFI-safe enums that support unknown values2,159MIT OR Apache-2.0
fundle_macros_implMacros for the fundle crate.2,159MIT
amassAutomatically generate `From` impls for nested enums, even across crates2,156MIT OR Apache-2.0
temp-stackA data structure for contexts or similar stack structures that are allocated on the call stack, using the temp-inst crate for…2,149MIT OR Apache-2.0
drain_at_sorted_uncheckedTerribly unsafe but highly efficient function that allows removing items from a vector with few moves.2,146MIT OR Apache-2.0
partial-resultA library for results that return success for non-critical errors.2,142MIT
atomiclock_asyncA simple async lock2,138MIT OR Apache-2.0
errortoolsQuality of life utilities for error handling in Rust.2,136MIT
optarg2chainConverts optional arguments to chaining style.2,122MIT
polonius_workaroundSafe replacement for Polonius on stable Rust2,121MIT
enumeratiesStatic properties on enum variants2,120Apache-2.0
const-exhaustive-deriveDerive macro for `const-exhaustive`2,118MIT OR Apache-2.0
atomr-agents-strategyStrategy traits and combinators for atomr-agents.2,117Apache-2.0
portal-pc-trampTrampoline for recursive functions, with support for mutual recursion (portal version)2,107MIT
unique-typeUnique and anonymous types generation utilities2,106MIT OR Apache-2.0
discretionaryA tiny procedural macro to make all your struct fields optional2,106Apache-2.0
fundleCompile-time safe dependency injection for Rust.2,103MIT
enum_handler_coreThis crate is part of the enum_handler library. Do not use it directly.2,101MIT OR Apache-2.0
float_to_intConversions of integer-value floats into integers2,097MIT
dirk_macrosDependency Injection for Rust2,092Apache-2.0
atomiq-deriveDerive macros for atomiq.2,078MPL-2.0
trait-tactics-macrosInternal dependency of trait-tactics2,075MIT
rustdoc-llmsRust documentation helper to generate file llms.txt to help training AI large language models (LLMs).2,071MIT OR Apache-2.0 OR GPL-2.0 OR GPL-3.0 OR BSD-3-Clause
array-helpersBasic length-generic operations on arrays.2,063MIT OR Apache-2.0
cargo-sandboxPerform Cargo builds inside of a sandboxed environment2,061Apache-2.0 OR MIT
vetArbitrary type validation2,054MIT OR Apache-2.0
core_memoZero-cost, no_std-compatible library for lazy evaluation and memoization2,052MIT OR Apache-2.0
update_cellA Cell<Option<T>> that you can update2,048MPL-2.0
field_pathType-safe, no-std field access and reflection utilities.2,041MIT OR Apache-2.0
type-flow-macrosMacros to make pipelines that encode the order of operation execution in the type signature of the pipeline and allow for…2,040MIT
generic-containerAbstract over "containers" that hold a T, such as a T itself, Box<T>, or Arc<Mutex<T>>2,032MIT OR Apache-2.0
iter-debugimpl Debug for iterators using a wrapper2,030MIT OR Apache-2.0
split-paragraphsIterator over paragraphs of a string.2,029MIT OR Apache-2.0
iter_from_closureIterator<Item = Item> from FnMut() -> Option<Item>2,029MIT/Apache-2.0
enum-togglesA generic Rust library for managing toggles/flags using enums and bitvec.2,025MIT OR Apache-2.0
ayAy automatically implement Fn* traits for structs and enums2,024MIT
vmonitorA simple and lightweight system monitor2,024GPL-3.0-or-later
fundle_macrosMacros for the fundle crate.2,022MIT
polyesterParallel iterator adaptors that accept arbitrary iterators2,021MPL-2.0
multi_streamAggregate multiple streams of different types in a single stream with an item type that is a tuple of the incoming stream items.2,021MIT OR Apache-2.0
dmutilA collection of utility macros to ease the creation of other macros.2,019MIT
type-flow-proc-macrosThe procedural macros that are used to make the declarative macros work.2,019MIT
wasm_safe_threadCross-platform std::thread + std::sync replacement for native and wasm32.2,019MIT OR Apache-2.0
type-flow-traitsTraits to implment for the type-flow abstractions.2,012MIT
fancy-defaultA better `derive(Default)` implementation.2,001MIT OR Apache-2.0
stdontKitchen sink of utils that I'd like to see in std1,994MIT OR Apache-2.0
iterrCombinators for dealing with iterators of `Result`s.1,991MIT/Apache-2.0
dyn_compatibleDyn compatible marker1,979MIT OR Apache-2.0
typechain-macrosMacros for the typechain crate1,979MIT OR Apache-2.0
permititCute little library to permit a specific error1,978GPL-3.0
capturesProvides macros to express more powerful closure captures1,978MIT OR Apache-2.0
trait_deriveSimple proc macro used to generate traits from impl blocks.1,976MIT
handler_mapMap from types to functions that receive them1,974MPL-2.0
enumnvictorhowisersConvert number to enum1,970MIT OR Apache-2.0
rust-automata-macrosMacros for rust-automata DSL1,969MIT
reportifyTyped error reports with structured diagnostic context, causes and contributing factors, configurable rendering, and panic…1,968MIT OR Apache-2.0
strut-factoryProcedural macros. Part of the Strut family.1,966MIT
generational-bufferGenerational Ring Buffer1,964MIT
derive_constructorsDeriving From, TryFrom and create new_with_*args* functions.1,959non-standard
borrow-ownedSimple helper for temporary object moving1,956MIT
validatenCommon validators for cryptocurrency, creditcards, domain, url, etc that can be used across projects1,955non-standard
cargo-reproBuild and verify Rust packages that are reproducible
byte-for-byte using a Cargo-driven workflow.1,937Apache-2.0 OR MIT
option-chainA macro for using `?` operator in functions that don't return `Option`.1,937MIT
proc_assertionsCompile-time assertions via procedural macros.1,932MIT OR Apache-2.0
prim-traitsTraits for implementing generic algorithms over Rust's primitive numeric types1,925MIT/Apache-2.0
ambianceAlias for the ambience crate1,924MIT
to-display-deriveA trait that is Display or can be converted to Display1,924MIT OR Apache-2.0
rangecutterUtilities for working with adjacent ranges1,922MIT
rustbenchA lightweight Rust procedural macro for benchmarking function execution time.1,922MIT
clone-into-boxA library for cloning trait objects1,913MIT OR Apache-2.0
count_enumEnum trait for finite types, e.g., conversion with usize, iteration on values1,912MIT OR Apache-2.0
adanteA versatile, small options parser for use in the command line1,910non-standard
trait-kitModule Standard Interface and Capability Management Center — A lightweight Rust library that provides a standard interface for…1,909MIT
fromageA cheesy Rust hack for converting between non-local types1,907Apache-2.0
nested-structCreate nested structs using a macro1,905MIT OR Apache-2.0
ext-opsGeneral purpose arithmetic operator traits which are missing from the standard library1,900MPL-2.0
protocolsThe protocols crate is native rust library that provides an application layer system designed to make it easy to send messages…1,899MIT/Apache-2.0
anyintprovides traits and structs for working with integers of any bit size1,877MIT
trim_matches_exactlyExtension trait for controlled trimming of prefixes and suffixes of &str and String1,876MIT
cocoroA more type-safe take on Rust stackless coroutines1,875non-standard
anyfluxGeneric flux-like state management1,871MIT OR Apache-2.0
known-countriesWell-known countries.1,870Unlicense
opt_reduce`reduce` function for `Option<_>`1,865MIT
tokio-actorsOTP-faithful actors for Tokio: panic-visible supervision, restart strategies, and Erlang-grade lifecycle semantics with zero…1,865MIT OR Apache-2.0
unprolixBoilerplate generator for constructors, getters and setters with derive macros1,860MIT
exclusivePlace code into an exclusive context that won't collide with another context.1,859MIT/Apache-2.0
beerec-variantsProcedural derive macro to generate boilerplate on unit variants enum types1,856MIT
enum_handler_deriveThis crate is part of the enum_handler crate. Do not use it directly.1,854MIT OR Apache-2.0
const-exhaustiveEnumerate all values of a type at compile time1,854MIT OR Apache-2.0
atomic-actorAn `Actor` with `async fn` handlers.1,853MIT OR Apache-2.0
kathy_macrosThe proc-macros for the 'kathy' crate1,850MPL-2.0
borrowck_sacrificesNecessary sacrifices to keep the Borrow Checker happy and developers sane.1,849MIT
wae-typesWAE Types - 统一错误类型与结果类型1,846MIT
reflectix-corePrimitive run-time type reflection for Rust1,846GPL-3.0-or-later
implicit-fnA macro that adds support for implicit closures to Rust.1,845MIT
gatherrHelpers for collecting values and errors from result iterators1,844MIT OR Apache-2.0
liftedHigher-kinded types in Rust.1,840MIT
arsc-rsAtomic Reference-Strongly-Counted pointer1,840MIT OR Apache-2.0
fullypeekPeek forward in an iterator as far as you'd like, memory allowing!1,837MIT
chain_from_lastIterator adaptor for chaining from last item.1,831Apache-2.0
strut-coreCore facades and utilities. Part of the Strut family.1,830MIT
escaped-delimiterIterator of delimited slices with escape characters1,828MIT OR Apache-2.0
into_inner_dropA helper library for implementing into_inner method for drop types safely.1,826MITNFA
aliyun-error阿里云统一错误处理1,825MPL-2.0
micFacilitates answering to competitive programming problems.1,811CC0-1.0
tirea-state-deriveDerive macros for typed AI agent state with CRDT lattice support1,811MIT OR Apache-2.0
aoc2023Solutions to Advent of Code 20231,804MIT
build_assertAsserts const generic expressions at build-time.1,798MIT OR Apache-2.0
filecaster-deriveProcedural derive macro for `filecaster`: automatically implement `FromFile` for your structs.1,796MIT OR Apache-2.0
xprA general purpose generic expression template library.1,795MIT/Apache-2.0
auto_ops_detMacros for easy operator overloading.1,795non-standard
lines_lossyProvides an extension to `BufRead` with a function `lines_lossy` that works like `BufRead::lines` but with lossy UTF-8 decoding1,793MIT
temp-inst-deriveDerive macros for the temp-inst crate.1,793MIT OR Apache-2.0
proc_static_assertionsCompile-time assertions via procedural macros.1,792MIT OR Apache-2.0
qubit-serdeReusable serde adapters and helper functions for Rust applications1,784Apache-2.0
append_to_stringThe append_to_string!() macro. Appends every occurance of a literal within a struct or on its own with a .to_string().1,783MIT
tuple-traitsAdditional tuple traits to enable ergonomic types.1,781MIT
telemetry-safe-coreCore allocation-free telemetry formatting primitives1,780MIT OR Apache-2.0
telemetry-safe-deriveDerive macros for compile-time safe telemetry formatting1,780MIT OR Apache-2.0
collareasy array collection1,780MIT
generic-mutabilityAllows the creation of APIs that are generic over mutability1,778MIT OR Apache-2.0
does_impl[WIP] Determine if a type does implement a logical trait expression.1,774MIT OR Apache-2.0