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.
sqlx-d1-macrosproc macros for sqlx-d1 - SQLx for Cloudflare D16,565MIT
disuseThe way to notify the implementation which return value is disuse.6,557MIT OR Apache-2.0
named-tupCreate named tuples using the tup!() macro.6,556MIT OR Apache-2.0
thalo-kafkaKafka event stream for crates.io/thalo6,546MIT OR Apache-2.0
workspacer-exportFacilitates workspace management and exportation within Rust projects through extended interfaces.6,546MIT
dxprDifferentiable expression templates in compile-time, dependency-free, no_std Rust.6,523Zlib
metadata-storeA simple store for recoverable metadata that is written in atomic batches.6,512MIT/Apache-2.0
sodiumSodium FRP (Functional Reactive Programming)6,509BSD-3-Clause
optionally_constOptional constness on stable Rust.6,509MIT OR Apache-2.0
borrow_with_ref_objVersions of Borrow[Mut] that return reference objects (Ex. std::cell::Ref)6,505BSD-3-Clause
dyn-ptrA box that stores types like pointers,
forgetting everything besides `Self: Unsize<dyn Trait>`6,494MIT
error-utils-deriveSome rust proc-macros to simplify common error handling patterns6,489MIT
peek-againA performant iterator providing double peek functionality.6,486MIT OR Apache-2.0
moverefTypes and traits for safe C++ style placement initialization and move semantics6,485Apache-2.0 WITH LLVM-exception
make_optionturns any type into an option, only if it is not already one6,481MIT
n-functorFaux-derive a `map` function for types with one or more type parameters.6,481MIT
error-utilsSome rust macros to simplify common error handling patterns6,474MIT
pipexA powerful functional pipeline macro for Rust combining sync, async, parallel, and streaming operations with extensible error…6,458MIT
rust-arc-gcA simple GCArc implementation for Rust6,450non-standard
std-traitsTraits for types in the standard library.6,439MIT OR Apache-2.0
asm_blockTranslate tokens to string for Rust inline assembly6,395MIT OR Apache-2.0
renegeTracking cache validity using fast concurrent invalidation propogation.6,385MIT OR Apache-2.0
leptos-trackedUtility traits for interacting with leptos signals6,378non-standard
static-eventsA library for creating zero-cost event systems.6,373MIT/Apache-2.0
layered-crateTool to declare and verify internal dependencies amongst modules inside a crate6,370MIT
type-leakEnable sharing type context beyond crate boundary6,363MIT
first-errFind the first Err in Iterator<Item = Result<T, E>> and allow iterating continuously.6,354MIT
compostAdds a macro to decompose tuples into tuples containing a subset of their values6,343MIT
verify-callUtility to verify whether a method has been called on a mock.6,331MIT
tynameRetrieve type names during program execution on stable Rust.6,331MIT/Apache-2.0
basic-oopSimple OOP for Rust.6,327MIT OR Apache-2.0
real-procproc macros for floating point constants.6,316MIT OR Apache-2.0
slicefieldsAllows for data structures whose members are sub byte aligned (e.g. a one bit alignment)6,300MPL-2.0
valust-utilsUtilities for the Valust crate6,286MIT OR Apache-2.0
toast-cellZero-cost type-branded cell with no runtime checks6,281BlueOak-1.0.0
recursive_referenceThis crate provides a way to walk on recursive structures easily and safely.6,266MIT OR Apache-2.0
inplaceA container that allows you temporarily take ownership of the stored value.6,265MIT/Apache-2.0
refmoveAn experimental implementation of library-level by-move references6,247MIT / Apache-2.0
const_typed_builder_deriveCompile-time type-checked builder derive using const generics6,243MIT
instancebuilderConvenient way of managing dependency injection6,235MIT
kenzuProcedural macros for builder pattern generation and validation6,229MIT OR Apache-2.0
read_bufferThis crate provides ReadBuffer, a wrapper to safely read into a buffer from a Read.6,211MIT
sitrepFrontend-agnostic progress reporting6,208MPL-2.0
cantorA general toolkit for working with types that have a small number of values6,193MIT OR Apache-2.0
rdb-pagination-deriveThe provided crate offers a procedural macro for defining `OrderByOptions`.6,191MIT
mapThis crate provides the `map!` macro and `map_insert!` macro, to create a HashMap collection and insert key-value pairs. Inspired…6,172MIT OR Apache-2.0 OR GPL-2.0 OR GPL-3.0 OR BSD-3-Clause
rustcompAdds vector, map, set, and iterator comprehensions to Rust.6,153MIT
refboxA Box with weak references6,150MIT OR Apache-2.0
lazy_fnlazy_static for functions!6,139MIT OR Apache-2.0
rodeoFast dropping arena based on bumpalo6,123MIT OR Apache-2.0
result-extensionsA simple rust library that provides extensions for the Result<T,E> type6,122Apache-2.0
zkp-mmap-vecReplacement for `Vec` that uses file-backed storage6,117Apache-2.0
explicit-error-deriveDerives for crates built on top of explicit-error6,117Apache-2.0
see-throughA library of traits to provide access to internal fields of generic structs.6,115non-standard
askingBuild async prompts.6,114MIT OR Apache-2.0
kind_procprocedural macro for the 'kind' crate6,112MIT
bitcoinleveldb-posixloggerPOSIX-backed logging implementation for bitcoinleveldb-style systems that writes timestamped log lines directly to libc::FILE…6,109MIT
vectorize_structvectorize_struct adds an procedural macro attribute that makes it possible to iterate over Trait Objects of every field of a…6,107MIT
multindexIndex slices with multiple const indices/ranges.6,101Zlib
fieldx_coreVarious types and tools useful implementing fieldx_derive core functionality. May provide useful APIs for 3rd-party crates.6,081non-standard
iscloseA collection of trait and macros for comparing approximate equality6,075MIT OR Apache-2.0
threadporterFirst aid kit for !Send + !Sync values ⛑️6,067Apache-2.0
easy_switchA macro for traditional C-style switch statements6,057MIT
dependent_viewWrappers to produce weak trait objects from reference types6,054MIT
non-empty-sliceNon-empty slices.6,031MIT
grit-junk-drawerCollection of small utilities, types, traits, helpers, etc.6,031BSD-3-Clause
io-extraAn extension trait for `std::io::Error`, with shorthand constructors for various `std::io::ErrorKind`s.6,017MIT OR Apache-2.0
inewMacros for constructor generation6,009MIT OR Apache-2.0
newtype-enum-macroProcedural macro to generate newtype enums.6,007MIT OR Apache-2.0
py-compA macro implementing a Python-like generator expression5,988MIT
icentral-sigmasA Rust library providing efficient management of sigma values for nodes in graph-based data structures. Includes traits for…5,975MIT OR Apache-2.0
btyStreamlined definition and usage of branded types in Rust5,967MIT
kik_sync_serviceA synchronous threading worker channel for generating the results you want with the data you need.5,956MIT
logchopLog your `Result` and `Option` chains with inline methods.5,953Apache-2.0
tilde_deriveUsing ~ to provide syntax sugar for Rust.5,946MIT
pgde_deriveA macro library for consuming PostgreSQL row data into structs.5,936MIT
transmute_guardTransmute between types that have been marked as safe by the marker type5,932MIT
steckrsA lightweight, trait-based plugin system for Rust applications and libraries5,919LGPL-3.0-or-later
eliza_error“Times are bad. Children no longer obey their parents, and everyone is writing an error handling library.” — Cicero5,898WTFPL
xmacro_libmacro engine for producing multiple expansions5,878MIT OR Apache-2.0
dev_bestia_url_utf8Library for url utf8 encode/decode5,875MIT
internLibrary for interning strings and other kinds of data. (WIP)5,856MIT
kindCostless typed identifiers backed by UUID, with kind readable in serialized versions5,835MIT
maflowFlow macros: basically unwrap for return, continue and break5,825MIT OR Apache-2.0
builder_derive_moreAdditional procedural macros for the builder pattern.5,806MIT OR Apache-2.0
tosserrorderive(Toss)5,803MIT OR Apache-2.0
rc-vecRcVec based on Rc and can be converted from Rc without allocation5,799MIT
phantasmSmall lib that helps with variance5,774MIT
classificClassifications, comparator and equivalence class implementations5,771MIT OR Apache-2.0
setup_read_cleanupA library for safely transitioning through the three phases of shared resource access: setup, read, and cleanup.5,769MIT
tiny_failProvides simple Fail type.5,762MIT OR Apache-2.0
clone_boxSimple convenience macro for casting to parent object-trait by cloning.5,755MIT OR Apache-2.0
try-from-discrim#[derive(TryFrom / From)] using enum discriminants, with fallback support.5,749MPL-2.0
derive_diThis crate is realized the dependency injection pattern5,736Apache-2.0/MIT
const_typed_builderCompile-time type-checked builder derive using const generics5,732MIT
knifeAn iterator that divides things evenly5,730MIT
rjdebounceDebouncing function utility5,726non-standard
anonymous-traitAnonymous trait implementation with capturing the environment5,716MIT OR Apache-2.0
permeableA permission-demand trait. Decouples the permission-demander from the permission / auth provider.5,706MIT/Apache-2.0
kubetsudistinguish value type of other struct5,695MIT
ascendMake static strs from any string5,689Unlicense
advent_of_code_traitsMinimal, flexible framework for implementing solutions to Advent of Code in Rusts5,688MIT OR Apache-2.0
basic-oop-macroProcedural macro library for basic-oop.5,685MIT OR Apache-2.0
typesafe_builder_deriveA procedural macro to generate type-safe builder patterns for Rust structs5,666MIT
try-specializeZero-cost specialization in generic context on stable Rust5,664MIT OR Apache-2.0
easy_stringsErgonomic, garbage collected strings for Rust5,662Apache-2.0/MIT
transactional_iteratorIterator that allows to commit or abort progress.5,658MIT OR Apache-2.0
sigwakeA thread-safe signal-based state management library that integrates with Rust's async programming model5,639MIT OR Apache-2.0
xmacrorust macro producing multiple expansions5,629MIT OR Apache-2.0
seekable_readerTransform every Read into a seekable resource5,626MIT OR Apache-2.0
dev_bestia_string_utilsLibrary for string manipulation5,625MIT
dto_deriveDerive for automatic mapping DTOs to Entities and vice versa.5,614MIT
iexIdiomatic exceptions5,605MIT OR Apache-2.0
scanmutInsert/remove multiple items from Vecs in O(n) time5,603MIT
xrmCross Runtime Manager5,578MIT OR Apache-2.0
summonA logic engine designed to magically give you what you ask for5,560MIT
packbytesConvert structures to and from packed representavises - byte arrays of fixed size that live on stack5,544MIT
xgx_internA high-performance, Hash-based value interner with custom handle types.5,535MIT
drop_ok`.drop_ok` syntax sugar for `Result`. It's instead of `.map(|_|())`.5,519MIT
zkp-error-utilsAssertion like macros for returning `Result::Err`5,519Apache-2.0
tuple_macroLibrary for determining the length of a tuple.5,506GPL-3.0-or-later
stream_routerA Future aware router to dynamically route between Streams and Sinks5,501Apache-2.0
genies_core整合DDD与Dapr 的 core 库5,499MIT/Apache-2.0
noise_fnSome simple noise functions and traits to allow easy integration with your own5,496MIT
defewA new() derive macro for structs5,496MIT OR Apache-2.0
q1tsim-logic-gatesThis is an extension crate to q1tsim implementing the AND, OR and XOR logic cates in a quantum comupting - friendly (i.e.…5,494Apache-2.0
nolog-plainA non-colored version of the simple nolog logger for writing to a file.5,488MIT
explicit-error-httpExplicit concrete Error type to manage and monitor errors that generate an HTTP response. It has dedicated feature flag to…5,487Apache-2.0
zkp-criterion-utilsCriterion helpers to benchmark over size and number of processors5,480Apache-2.0
iter_columnsIterate over columns easily5,471MIT OR Apache-2.0
error-info-macrosMacros for error-info crate5,459Apache-2.0
type-varianceMarker traits for subtype variance5,450MIT
cmp_by_deriveDerive macro CmpBy and HashBy, respectively deriving traits `Ord`, `PartialOrd`, `Eq` and `PartialEq`, and `Hash` for structs and…5,443MIT OR Apache-2.0
optionally_const_macrosProc-macro crate for optionally_const.5,430MIT OR Apache-2.0
arraylibTools for working with arrays5,426MIT
rewrite-impl-traitRewrites impl Trait as method generics5,417MIT
const_trait_implMoved to unconst_trait_impl due to collision between manually added dependency and implicit associated feature for the crate5,415MIT OR Apache-2.0
include_data_uriinclude a file as a data uri5,414MIT
peeking-iterAn iterator adapter that allows infinitely-deep peeking5,379MIT
maybe-stringProvides a newtype wrapper that represents a byte vector that may be a valid UTF-8 string5,359MIT
abstract-implCreate abstract implementations for traits5,359MIT
racrosCollection of rust macros5,357MIT
array-litMacros for array and `Vec` literals with superpowers5,337MIT OR Apache-2.0
erroreLibrary for error handling and tracing5,336MIT OR Apache-2.0
zkp-logging-allocatorWrapper around the system allocator that logs large allocations5,334Apache-2.0
zstZero-sized generic type with the associated type exposing the type parameter5,333MIT OR Apache-2.0
ambienceLightweight library for passing ambient parameters5,331MIT
traitreg-macrosCreate a registry of implementations of a trait5,329MIT OR Apache-2.0
error-forgePragmatic Rust error-handling framework with stable error metadata, contextual diagnostics, optional async support, and…5,321Apache-2.0
scopefnScope functions for Rust5,316MIT
pink-erased-serdeType-erased Serialize and Serializer traits5,312MIT OR Apache-2.0
hashableHashMap and HashSet replacements that implement the Hash trait -- HashableHashMap and HashableHashSet.5,306MIT
vesta-macroProcedural macros used by and exported from the Vesta crate5,304MIT
genies_context整合DDD与Dapr 的 context 库5,304MIT/Apache-2.0
trait-cast-macrosProc-macro implementation for the 'trait-cast' crate.5,301MIT OR Apache-2.0
precog_iterAn iterator adapter that returns the equivalent of `(iter.next(), iter.peek())`.5,294MIT OR Apache-2.0
genrcrefcounted pointer type that allows subobject pointers5,282MIT OR Apache-2.0
quixotic-plecostomus-errorError types and error handling APIs for Pingora.5,273Apache-2.0
rovvprovide the anonymous row type (poor-man's row polymorphism) in rust5,260MIT/Apache-2.0
static-cow`Cow` at the type level: a framework of traits for writing types that are generic over ownership of their contents.5,259Apache-2.0 WITH LLVM-exception
sabi-rustA small framework to separate logics and data accesses for Rust application.5,247MIT
tagged_cellFast, initializable, and thread safe static variables5,244MIT OR Apache-2.0
mini-macro-magicExport tokens to other modules and crates. Now with 100% less proc macros!5,242MIT OR Apache-2.0
generational_vectorA vector type using generational indices5,225MIT
i18n_icu-rizzen-yazstonThe `i18n_icu` crate of the Internationalisation project.5,224BSD-3-Clause
breadth-first-zipBreadth-first `zip` guaranteeing a monotonically increasing sum of indices.5,221MPL-2.0
const-unitsA library that lets you check the dimensions of your quantities at compile time and run time5,216MIT
axpyMacro for auto-vectorizing n-ary linear combinations5,209MIT OR Apache-2.0 OR BSD-2-Clause
ipzoneIpzone provides a simple and powerful IP architecture to Rust.5,202MIT OR Apache-2.0
error_logSimple, struct-based Error-Handling5,198 Apache-2.0
rs-starterA parser and formatter for std::time::{Duration, SystemTime}5,196MIT/Apache-2.0
empty-fallback-chainIterator adaptor like chain, but conditional on empty first iterator5,196MPL-2.0
struct-builderDerive a builder for your structs5,187MIT
shoebillA Wadler/Leijen style pretty-printer5,185non-standard
intuple_derivederive for intuple5,183MIT OR Apache-2.0
chain_linqAn implementation of .NET's LINQ in rust as a declarative macro.5,179MIT
serde_literalsSupport for serialising and deserialising literals directly into enum unit variants5,176MIT OR Apache-2.0
blk_count_macroA simple macro for counting a number of comma-separated tokens at compile time5,165MIT
try-dropBatteries included error handling mechanisms for drops which can fail5,156MIT
consume-iteratorConsume any iterator fully5,153MIT
object-safeImplement object-unsafe traits for trait objects5,152MIT OR Apache-2.0
try_tup_to_arr_macroLibrary for implement from tuple trait5,151MIT OR Apache-2.0
trait-castGet your own Any with support for casting to trait objects.5,148MIT OR Apache-2.0
typesafe_builderA procedural macro to generate type-safe builder patterns for Rust structs5,144MIT
regecsRust Extended Generic ECS (REGECS)5,142BSD-3-Clause
visitaElegant implementation of the Visitor Pattern5,138MIT
projectureEasy arbitrary type projections without proc macros5,135MIT
confgrA simple rust application configuration derive macro.5,130MIT
a_r_c_h_e_r_yTEMPORARY CRATE5,128MPL-2.0
polimorphismFunction overloading via a procedural macro5,125MIT
rollercoasterExtra iterators for grouping, sorting, arithmetic, and more.5,121MIT
uni_rc_lockProvides a trait which may represent either Rc<RefCell<T>> or Arc<RwLock<T>>5,120MIT OR Apache-2.0
for_each_repeat`Iterator::for_each` that can repeat current iteration5,119non-standard
runtime-loopRuntime loop for Rust5,106MIT/Apache-2.0
laxcowClone-on-write smart pointer with relaxed trait constraints5,096MIT OR Apache-2.0
repeatedAllows you to repeat a block of code a number of times.5,094MIT
let_or_returnConvenient macro to extract a value via `if let`, and `return` in the else case5,093MIT
typemap-meta-deriveA simple compile-time macro to create type-to-value maps, derive macro crate5,088MIT OR Apache-2.0
newtype-enumTraits to convert between enums and their variant types.5,088MIT OR Apache-2.0
nami-deriveDerive macros for the nami reactive framework5,075MIT