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.
blaze-rsA Rustified OpenCL Experience11,787MIT
sod-mpscService Oriented Design - Multi Producer Single Consumer11,740MIT OR Apache-2.0
grit-data-prisonA crate providing the struct Prison<T>, a Generational Arena that allows full interior mutability to each and every element11,736BSD-3-Clause
derive_jserror#[derive(JsError)]11,736MIT OR Apache-2.0
bherrorTBTL's library for error handling in Rust.11,704non-standard
replacerCreating compilable Rust source code templates.11,688GPL-3.0
zkp-macros-libLibrary of procedural macros implemented using `proc_macro2`11,636Apache-2.0
lignin-schemaAn HTML schema interface through which lignin Node trees can be created with efficient compile-time checking.11,628MIT OR Apache-2.0
restructedQuickly derive subsets of your structs11,626Unlicense
persian-rugFramework for bringing together disparate objects with inconvenient relationships.11,593MIT OR Apache-2.0
woeA Result type that differentiates between local errors (which can be handled)
and fatal errors (which cannot)11,566MIT OR Apache-2.0
i18n_provider_sqlite3-rizzen-yazstonThe `i18n_provider_sqlite3` crate of the Internationalisation project.11,544BSD-3-Clause
simpl_actorSimple tokio actors11,541MIT OR Apache-2.0
enum-extract-macroA derive macro for extracting enum variants into their own types.11,508MIT/Apache-2.0
irox-structsTraits for Struct Types - linearly serialized big/little endian bytes11,496MIT OR Apache-2.0
some_executorA trait for libraries that abstract over any executor11,456MIT OR Apache-2.0
overloaded_literals_macroInternal proc-macro implementation crate for the overloaded_literals crate.11,446MIT OR Apache-2.0
awaurAWAUR: Asynchronous Web API Utilities for Rust11,434MIT
cached-pairA simple pair of values, where the one can be convertible to the other.11,407Apache-2.0
round_multA tiny library to round a number up or down to a multiplier.11,404MIT OR Apache-2.0
concat_strsMacro for quickly building a String from components.11,400AGPL-3.0
futures-copyCopy data between AsyncRead and AsyncWrite, with bidirectional and flushing support11,391MIT OR Apache-2.0
devela_dependOptional external dependencies for `devela`.11,384MIT OR Apache-2.0
forward-traitsA general trait-forwarding crate11,351MPL-2.0
persian-rug_deriveFramework for bringing together disparate objects with inconvenient relationships.11,306MIT OR Apache-2.0
zkp-macros-implImplementation crate for `proc_macro_hack`11,305Apache-2.0
fast_fmtThis crate provides faster, more flexible and more correct alternative to core::fmt11,299MITNFA
package-bootstrapAn embeddable solution for installing build artifacts11,216GPL-3.0-only
variant_access_deriveProdedural macros for deriving the VariantAccess traits11,198MIT
on_dropon drop11,188non-standard
dependency-injectorHigh-performance, lock-free dependency injection container for Rust11,167MIT OR Apache-2.0
seasickTools for implementing and transcribing C APIs.11,143Apache-2.0 OR MIT
moxMockery Of X(ML): a JSX-alike syntax for the builder pattern.11,137MIT/Apache-2.0
flexi_funca Rust crate designed to supercharge your Rust programming experience with two powerful macros: ff (Flexi Func) and fb (Flexi…11,099MIT
flux-compilerA modern evolution on flow-based programming (FBP).11,084Unlicense
prost-unwrap-transformA procedural macro container for prost-unwrap library11,067Apache-2.0
class_list_macroA reactive helper that ensures normalized class list strings in frontend frameworks like Leptos.11,065MIT
diplomatic-bagA wrapper type that allows you to send `!Send` types to different threads.11,056MIT OR Apache-2.0
project-templateA template for Rust project11,046non-standard
tearTyped early returns and loop control + Syntax sugar for try!-like error handling11,038MIT OR Apache-2.0
serbiaNo-fuss big arrays for Serde11,009MIT
multirefMultireferences: a safe way to do [&T] -> &[T]10,994MIT
flux-parserA modern evolution on flow-based programming (FBP).10,930Unlicense
allowAlias/label lints (to disable) with your intentions. Reexported from allow_prefixed, grouped under rustc::, clippy:: and…10,926MIT OR Apache-2.0
allsorts-rentalA macro to generate safe self-referential structs, plus premade types for common use cases.10,911MIT/Apache-2.0
dynamizetrait objects with variable associated types10,902MIT
dyn-context-macroProc macro crate for dyn-context.10,901MIT OR Apache-2.0
prompt-inputA simple and lightweight library for user input prompts in Rust, designed to make input handling straightforward.10,841non-standard
indexed_valued_enumsCreate enums resolving into values, and get their variants back through their values, their discriminant or their name; inspired…10,839non-standard
gen-streamGenerator-based streams for Rust and futures 0.3.10,834MIT/Apache-2.0
light_enumprovide a derive keyword to generate a light enum10,809MIT
html-rsGenerate HTML code using Rust builders10,809MIT
adventureHelps your great adventure for the various type of requests.10,802MIT OR Apache-2.0
decurseMacro to make recursive function run on the heap (i.e. no stack overflow).10,799MPL-2.0
cantripPractical extension methods for standard Rust collections10,795MIT OR Apache-2.0
ideriveDrop-in replacement for derive that doesn't directly depend on generic bounds10,781Zlib OR MIT OR Apache-2.0 OR BSL-1.0
facet-peekRead arbitrary Facet types safely10,778MIT OR Apache-2.0
zkp-macros-declProcedural macros10,771Apache-2.0
unwrap-ordWrapper type to easily convert Ord to PartialOrd. inspired by std::cmp::Reverse10,753MIT
typeablesTypeables: Rust crate of type aliases. By SixArm.com.10,746MIT OR Apache-2.0 OR GPL-2.0-only
sashayType-erased and lifetime-erased references and slices10,736MIT OR Apache-2.0
fn_zipProvides a zip trait for functions, allowing two functions to be combined before being called.10,714MIT
prost-unwrapA procedural macro for prost-generated structs validation and type-casting10,712Apache-2.0
mydi_macrosMacroses for MyDI library10,709MIT OR Apache-2.0
statecraft-deriveDerive macros for the statecraft state machine library10,707MIT OR Apache-2.0
statecraftState machines with compile-time enforced transitions10,703MIT OR Apache-2.0
width_countersAtomic counters with variable bit widths and customizable atomic ordering10,699MIT OR Apache-2.0
autotraitReduces boilerplate by auto-generating trait definitions from impl blocks for dynamic dispatch.10,693MIT OR Apache-2.0
bytifyA simple macro that can write given const-expr values into a continuous byte array.10,680MIT
linotypeA keyed sequence reprojector that can optionally pin its values. (A stable-ordered transactionally-incremental multi-map.)10,672MIT OR Apache-2.0
iter-traitIter trait for collectons.10,655CC0-1.0
linspaceTurns a range into a linearly spaced sequence of values.10,581MIT
vec-treeA safe tree using an arena allocator that allows deletion without suffering from the ABA problem by using generational indices.10,578MPL-2.0
enumcapsulateSafe casting for newtype enums and their variants10,571MPL-2.0
coveCasts Of Varying Elegance (COVE): extension traits for casting numerical types10,503MIT
double-traitA procedural macro to derive a mirror of a trait designed to make it easier to implement test doubles.10,498MIT
paredProjected reference counted pointers10,485MIT OR Apache-2.0
class_listA reactive helper that ensures normalized class list strings in frontend frameworks like Leptos.10,464MIT
io-adaptersAdapters to convert between different writable APIs.10,448Apache-2.0
rdb-pagination-coreSQL query extension library for handling pagination and sorting in relational databases.10,448MIT
irox-threadingBlocking and Asynchronous Threading Tools10,421MIT OR Apache-2.0
prost-unwrap-coreA procedural macro implementation for prost-unwrap library10,419Apache-2.0
iterextdThis trait provides additional methods for working with iterators, enhancing their functionality.10,411MIT
dynamic-castThe fifth pillar of OOP: dynamic casting.10,408MIT OR Apache-2.0
thin_trait_objectOne pointer wide trait objects which are also FFI safe, allowing traits to be passed to/from and implemented by C ABI code10,387MIT OR Apache-2.0
extendable-data-helpersProc macros for the extendable-data package because cargo makes things difficult.10,332MIT
graniteGeneric backing storage framework for building data structures.10,326MIT OR Apache-2.0
into_stringHelper crate to convert values into strings avoiding extra allocations10,312MIT OR Apache-2.0
rw-exact-extExtension of std::io to read and write data types with exact amounts of bytes.10,309MIT
apparatA lightweight event-driven behavioral state machine10,297MIT
quick-error2A macro which makes error types pleasant to write.10,284MIT/Apache-2.0
wrapGeneric function wrapping10,279MIT
error_mancerQuickly define custom error enums for a function.10,246MIT
i18n-rizzen-yazstonThe `i18n` crate of the Internationalisation project.10,242BSD-3-Clause
compound-errorCompound errors with flat hierarchy10,169Apache-2.0
singleton-stepanovIt isn't meant to be used by itself, but as template for your our types.
Attempt to do Efficient Programming with Components:…10,163Apache-2.0
bail-outMacros to help keep code clean for validations and error handling10,141MIT
rcrefcellWrapper type for Rc<RefCell<A>>10,125non-standard
mydiMyDI. Dependency Injection library10,116MIT OR Apache-2.0
fuzed-iteratorIterator wrapper for detecting incorrect use of non-fused iterators10,100MIT OR Apache-2.0
macro_pubpolyfill proc-macro for visibility scoped macros10,063MIT OR Apache-2.0
map_forA Rust macro that implements for comprehensions similar to Scala's.10,058MIT
type-factoryProvides unique opaque types10,050BlueOak-1.0.0
get_chunkFile iterator or stream with auto or manual chunk size selection10,023MIT
struct_fieldDerive macros for generating each field in a struct9,984MIT
variant_accessA set of traits and macros for defining a common api for Rust enums based on the std::variant api in the C++ standard library9,984MIT
serv4rsserv4rs is a powerful, pragmatic, and extremely fast web framework for Rust9,971MIT/Apache-2.0
prog_rsConvenient progress bar9,963Apache-2.0
candySyntaxic sugar for Rust: macros for lighter error handling code, and more.9,912MIT
cve-rsBlazingly fast memory vulnerabilities, written in 100% safe Rust.9,899non-standard
const_sort_rsSort slices in const items.9,877MIT OR Apache-2.0
numscaleTrait for scaling numeric types by a floating point number at compile-time9,863MIT
rust-persian-toolsOfficial Rust implementation of Persian Tools9,850MIT
engineer_deriveThe engineer is a master builder! And this's it's derive.9,842MIT OR Apache-2.0
autofolderSingle-element folding wrapper9,817MIT
build-featuresA simple proc macro to create a vector that a list of enabled features in a root package9,809MIT OR Apache-2.0
to_unitToUnit; Any type to () syntax sugar.9,782MIT
thinnableThin references to unsized types.9,775Apache-2.0
tiny_sortBinary-size optimized stable and unstable sorts9,728MIT OR Apache-2.0
resilient-rsA Rust utility library for fault tolerance, including retry strategies, backoff mechanisms, and failure handling.9,713MIT
enum-unitGenerates unit-variant enums from existing enums.9,702MIT
unconst_trait_implFunction-like macro that "unconsts" trait implementations9,572MIT OR Apache-2.0
head-tail-iterAn iterator that repeatedly splits head & tail9,572MIT OR Apache-2.0
noneifemptyConvert T to None if empty9,562non-standard
derive_variants_derivederives an additional enum from a nested enum that contains only variants and no nested fields9,513MIT
n-letter-wordleA wordle clone, played in the command line, with words of any length.9,497MIT
sosecrets-rsA simple `Secret` wrapper type that reveals the secret at most `MEC: typenum::Unsigned` times with compile time guarantees.9,496non-standard
push_decodePush-based decoding and pull-based encoding9,489MITNFA
flux-codexA modern evolution on flow-based programming (FBP).9,471Unlicense
altered_perception`struct HSV/Luma/HSL/etc.` for sharing pixels between crates + other pixel manipulations9,423MIT
extendable-dataA set of rust macros that allows you to specify data that can be "extended" or inherited from.9,421MIT
adhesionA set of macros for design by contact in Rust. The design of this library was inspired by D's contract programming facilities.9,415MIT
simple_scanIterator extensions for simple scan operation.9,398MIT OR Apache-2.0
open-ambientOpen files and directories with constant paths9,394Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
hexgainclude all other console hexga crate in one !9,391MIT OR Apache-2.0
named-blockMacro implementing early-exit-from-any-block9,367MIT
non-empty-strNon-empty strings.9,363MIT
crossdylibCross-platform shared state across shared libraries/modules9,355MIT
divaOpinionated convenience wrappers for `std::process::Command` and friends.9,333Apache-2.0 OR MIT
fromsuperMacro helpers to derive new sub-structs from existing super-structs, potentially unpacking Options.9,309MIT OR Apache-2.0
engineerThe engineer is a master builder!9,305MIT OR Apache-2.0
i18n_localiser-rizzen-yazstonThe `i18n_localiser` crate of the Internationalisation project.9,297BSD-3-Clause
hexga_coreBasic set of functionalities common to all hexga crate9,297MIT OR Apache-2.0
name-itGive a name to async fn return types9,272BlueOak-1.0.0 OR Apache-2.0
sqlx-d1-corecore implementation for sqlx-d1 - SQLx for Cloudflare D19,266MIT
act-zero-extMacros for act-zero9,246MIT
bevy_cellAttach Bevy's Handles/Entities statically to Types.9,219MIT OR Apache-2.0
memory-size-typeA data type for dealing with memory sizes9,216MIT
derive-prom-metricsBuild Prometheus metrics declaratively as structs9,213MIT OR Apache-2.0
dto_mapperA library to create dynamic DTOs (Data Transfer Object) from a structure9,205Apache-2.0
enum-toolsAutomatically derive functions and trait implementations for enums9,203MIT
dddk_macroDerive macro lib for dddk_core9,159Apache-2.0
sod-busService Oriented Design - Single Producer Multi Consumer9,151MIT OR Apache-2.0
elicit_macroSmartPointer-like structure for polymorphism.9,104MIT OR Apache-2.0
write-to-fileWrite to a file, simple helper fn and traits lib crate.9,085MIT
unnestMacros for an unnested control flow.9,071MPL-2.0
merge2Merge structs into single by values9,067MIT OR Apache-2.0
byte_setEfficient sets of bytes.9,061MIT OR Apache-2.0
discard-whileGet the first non-matching element, and the amount of discarded elements.9,050MIT
into-ownedThis crate has been merged into as-is crate and is no longer developed by the current author.9,028MIT OR Apache-2.0
structinator_traitsLibrary for traits allowing transfer of data from iterators to structs9,016Apache-2.0
mayberA zero-cost enum for handling either references or owned values with a unified interface8,998MIT OR Apache-2.0
dyn_safeTake control of the Semver hazard of the `dyn` safety of your traits!8,963Zlib OR MIT OR Apache-2.0
pfxA prefix tree (map and set), implemented without any unsafe8,940MIT
singleton-traitSingleton trait for types with unique values and Erased type for zero-sized ownership proofs8,936MIT
chillpillA more powerful (and more restrictive) `std::panic::catch_unwind`8,932MIT OR Apache-2.0
typed_index_deriveCustom derive to easily create newtype index types.8,931MIT OR Apache-2.0
facet-pokeBuild and alter arbitrary Facet types8,925MIT OR Apache-2.0
human-readable-timeA data structure for managing a human readable time8,913MIT
ferrunix-coreCore types, traits, and implementations for ferrunix8,912MIT OR Apache-2.0
rut-libA Rust Library for validate/generate an Chilean ID (RUT)8,895MIT
deboogDerive macro for extended debug formatting8,874MIT OR Apache-2.0
const-sub-arrayExtract a fixed size sub-array out of an array with complie-time length and offset checks.8,872MIT
nolifeCrate to open a scope and then freeze it in time for future access.8,852MIT OR Apache-2.0
fallible_mapUtilities for fallible mapping over `Option` and iterators using functions that can return `Result`s.8,836MIT
precisej-printable-errnoPrintable system call errors for nix8,823MIT
physical-quantitydimension and unit system for general physical physical quantities.8,791MIT OR Apache-2.0
async-drop-guardThis library offers hash map and cache data structures where individual entries can be locked8,784MIT OR Apache-2.0
workspacerA Rust crate providing extended interfaces for workspaces and crates, facilitating modular and reusable code development.8,777MIT OR Apache-2.0
funcmap_deriveDerivable functorial mappings for Rust8,773MIT OR Apache-2.0
yadirYet Another Dependency Injection Registry for Rust8,771non-standard
service-builderA lightweight, type-safe service construction library for Rust that provides compile-time dependency injection through builder…8,750MIT
hexga_bitflagsBitflags utilities8,734MIT OR Apache-2.0
ternary-rsA Rust library for emulating the ternary operator from C/C++ (among other languages)8,733MIT OR Apache-2.0
usageA convenient alternative to the newtype pattern.8,722MIT
new_typeExperimental implementation of newtypes by type level logic.8,722MIT
abscissa_generatorTemplate-based generator for creating new Abscissa applications8,715Apache-2.0
enum_macroUseful macro for enum8,715MIT
collectedSummation, product, maximum and more special collectors for Rust iterators.8,712MIT
iter-pythonPython generator expressions and 'list' comprehensions8,710MIT
local-type-aliasLocal type aliases in impl blocks8,688MIT
sqlx-d1SQLx for Cloudflare D18,676MIT
rdb-paginationSQL query extension library for handling pagination and sorting in relational databases.8,668MIT
declarative_enum_dispatchDeclarative macro generating boilerplate for enum dispatch8,660MIT OR Apache-2.0
app-frameCompile-time dependency-injected application framework with a service orchestrator.8,659MIT OR Apache-2.0
selfieExperimental, macro-free and allocation-free self-referential structs.8,655MIT OR Apache-2.0
conditionalProvides a conditional! macro which lets you use the syntax of the conditional operator (also known as the ternary operator) in…8,615MIT/Apache-2.0
chronographTimestamp Tracers8,614MIT OR Apache-2.0
dispatchtableSmall library used to specify function dispatch tables HashMap<K, Box<Fn(..)>>8,596MIT
fieldx_plus_macrosHeler macros for fieldx_plus crate8,554non-standard