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.
prompt-organizerA simple library to better manage AI prompts in your Rust code.1,489MIT
valkyrie-runtimeHighly customized wasm runtime for valkyrie-language1,488MPL-2.0
fi2bConvert floating point and integer numbers into bytes and put them into an array1,486MIT
validoAn extensible Rust validation library that actually encourages the "Parse, don't validate" philosophy.1,480MIT
reboundedBounded types1,478MIT or Apache-2.0
utilz-rsA lightweight extension trait collection for Rust primitives and types.1,471non-standard
litutilproc macros for working with literals in declarative macros1,470MIT
safe-numSafe number arithmetics with ergonomics1,469Apache-2.0
pairSafe API for generic self-referential pairs of owner and dependent.1,466MIT OR Apache-2.0
subdefExpressive attribute macro to define nested structures1,462MIT OR Apache-2.0
creteErgonomic, thread-safe & flexible state management.1,461MIT
undoredo_deriveDerive macros for undoredo.1,460MIT OR Apache-2.0
indexing-strSound unchecked indexing using “generativity”; a fork of bluss/indexing1,456MIT OR Apache-2.0
tsoracle-consensusConsensusDriver trait: pluggable consensus extension point for tsoracle (openraft, raft-rs, etcd, ...).1,452Apache-2.0
metaprogrammingPort C++ metaprogramming to Rust1,451MPL-2.0
hust-macroA way to embed Rust into HTML code and use it wherever you'd like.1,451MIT
bongonet-errorError types and error handling APIs for Bongonet.1,442Apache-2.0
perforateA macro to generate variants of a struct to allow splitting fields for extended periods of time1,441MIT OR Apache-2.0
quick-builder-derivederive macros for the quick-builder crate1,438MIT
untryKind of the opposite of the ? operator1,435MIT
cocA useful macro collections for struct1,434MIT
atomic-stateThis library provides a static asynchronous data that can be accessed safely and concurrently from any part of your program1,433MIT
and_then_map_errProvides traits for chaining Result operations with different error types WITHOUT the need for intermediate map_err calls.1,423MIT
derive_screaming_snake_caseA lightweight Rust proc-macro crate that implements the Display trait for enums with unit variants by converting each variant's…1,418MIT
dddDomain-Driven Design Framework1,414MIT OR Apache-2.0
stringvecA simple macro for creating Vec<String> from various types1,413LGPL-3.0-or-later
capability-stripped-string-skeletonProvides a streamlined representation of a skill tree structure, focusing on a lightweight, stripped-down version that retains…1,410GPL-3.0-only
smix-errorsmix-error — ExpectationFailure + FailureCode + AI-readable to_prompt + buildSuggestions (stone, cold path).1,406Apache-2.0 OR MIT
handle_traitA trait for types that represent handles to shared resources1,400MIT
trustmebroA Rust macro that magically turns unsafe code into ‘totally safe, bro’ with no consequences. Ideal for those who want to assert…1,400non-standard
paradis-demodemo functionality for paradis, not intended for use1,396MIT OR Apache-2.0
unit-extFluent helpers for returning common wrapper values from the unit type.1,392MIT OR Apache-2.0
is_defaultA trait for checking whether a value is default, with derive support.1,385MIT OR Apache-2.0
rascA simple fast maths Parser1,378MIT
prism3-coreFoundational utilities and language-level tools for Rust application development1,378Apache-2.0
kindest_procprocedural macro for the 'kindest' crate1,377MIT
highrollerA simple, high-level rolling index that is thread-safe and guarantees cheap runtime-unique IDs.1,374MIT
const-destructureDestructuring in const contexts on stable Rust.1,368MIT OR Apache-2.0
repeaterProc-macro for repeating tokens1,363Zlib OR MIT OR Apache-2.0
async-iter-extAsync iterator methods and async methods for option and result.1,358MIT OR Apache-2.0
child-ofThe library that allows you to make one struct a child of another.1,355MIT
mae_macrosProcedural macros for Mae-Technologies micro-services — derive helpers, schema binding, and async test harness.1,354MIT
hexga_utilsmiscellaneous stuff, when somethings will be too big it will be on a separate crate1,352MIT OR Apache-2.0
surqx-macrosMacros for the surqx crate1,349Apache-2.0
pixiv-api...1,347MPL-2.0
macron-inputlnReads user input line from the console1,346MIT
tosubA subsystem lifecycle management library for tokio applications1,345MIT OR Apache-2.0
macron-inputReads user input lines from the console1,345MIT
serenumGenerate string representation for a enum.1,343MIT OR Apache-2.0
split-conserve-wsAn iterator that splits on whitespace but doesn't throw it away1,341MIT
non0Compile-time checked non-zero integers with type inference and first-class `const` support.1,339MIT OR Apache-2.0
tagsetEasily create trait-dispatching sum types1,339MIT OR Apache-2.0
iter_enumerationUnifies Iterators over Same Type1,337non-standard
loopcellcell for multiple routes of access that are only used one-at-a-time in sequence1,333MPL-2.0
edynNear drop-in replacement for dynamic-dispatched method calls with up to 10x the speed1,333MIT OR Apache-2.0
pipeiMulti-argument pipe and tap with partial application.1,329MIT OR Apache-2.0
compo-macrosCompo is a general-purpose declarative and reactive component framework designed for single-threaded asynchronous execution,…1,328Apache-2.0
unwind-unsafeZero-sized marker types which do not implement UnwindSafe or RefUnwindSafe1,326MIT-0
onforward_refonforward_ref_* macros auto generate standard implementation of operator overloading without Copy derive1,325MIT
reflectixPrimitive run-time type reflection for Rust1,324GPL-3.0-or-later
enum_handlerA macro to generate a handler trait for enums variants.1,321MIT OR Apache-2.0
from_reffrom_ref_* macros auto generate standard implementation of trait From without Copy derive1,308MIT
typetokentype tokens for branding via unique singletons1,306MIT
smacroA collection of convenient Rust macros to reduce boilerplate1,305MIT
asenum_deriveSmall derive macro to safely convert the numerical value of an enum to the enum1,297Apache-2.0
reftRef and Mut wrappers that implement AsRef and AsMut for any given &T1,296MIT OR Apache-2.0
blocA state management library1,292MIT OR Apache-2.0
strategy-pattern-rsA procedural macro library for implementing the Strategy Pattern in Rust.1,287MIT OR Apache-2.0
discriminantBetter `Discriminant` and enum operations1,285MIT
should_matchPass a test if the output matches a pattern.1,283MIT
scoped_threadsLightweight, safe and idiomatic scoped threads1,280MIT OR Apache-2.0
tokio-timeoutA proc-macro which adds a timeout to an asynchronous function running under the tokio runtime1,280MIT
pipe-dropGet a reference to an object, do something with the reference, and then drop the object1,277MIT
should_errorThe test should fail with Err.1,272MIT
clone-behaviorBound the semantic behavior and time complexity of cloning a value1,272MIT OR Apache-2.0
descriptive_toml_macroProcedural derive macro for serializing a struct into a TOML template with field descriptions that is easily edited and…1,270MIT OR Apache-2.0
nounwindA attribute macro to prevent panics from unwinding, similar to C++ noexcept1,268Apache-2.0 OR MIT
hfsmHierarchical Finite State Machine (HFSM)1,265MIT OR Apache-2.0
errgonomicMacros for ergonomic error handling with thiserror1,261Apache-2.0 OR MIT
collection_macroGeneral-purpose `seq![]` and `map! {}` collection macros1,260MIT OR Apache-2.0
erraticComposable, minimal-overhead error handling with typed state.1,257MIT
concrete-type-rulesRules and validation for concrete types1,256MIT
portal-trait-transformerUtilities for working with impl traits in Rust1,255MIT OR Apache-2.0
kathyConst-evaluated swift-style keypaths1,254MPL-2.0
simple-lazy40 Lines wrapper of std OnceLock1,252MIT OR Apache-2.0
field-visibilityAttribute to specify the visibility of all fields in a Rust struct1,251MIT
assert_layoutAssert struct layouts, including field sizes and offsets.1,249MIT OR Apache-2.0
rediffDiff and compare Facet values with detailed structural difference reporting1,249MIT OR Apache-2.0
facet-inspectAllows inspecting types that implement Facet1,248MIT OR Apache-2.0
dylib_hookA framework for hooking functions loaded from dynamic libraries on Linux1,246Unlicense
lesbar-textString extensions and queries for legible text.1,245MIT
nonnull-mutNonNull<T>, but T is invariant like *mut T1,245MIT
ownit-deriveEasily turn borrowed type into owned values1,242MIT OR Apache-2.0
rust-analyzer-modulesA library for analyzing a Rust crate's module structure and dependencies (fork with rust-analyzer 0.0.289 support).1,242MPL-2.0
fp-preludeHaskell Functor, Applicative and Monad1,242MIT OR Apache-2.0
matchmaker-libA fuzzy finder for the terminal, powered by nucleo1,242MIT
unwrap-overflow-opsarithmetic operations that always panic on overflow1,234Apache-2.0 OR MIT
using-paramAdd parameters, generics and return types to all functions in the impl block1,233MIT
gabouchet-mergeMerge multiple values into one1,226Apache-2.0 OR MIT
ranchRanged integer types and math1,226Apache-2.0 OR BSL-1.0 OR MIT
retrievalAllows the retrieval of trait implementations.1,222MIT OR Apache-2.0
pyo3-loomA crate for effortlessly creating Python bindings, including involving NumPy, to Rust source code with PyO31,220non-standard
fast_assertA faster assert!1,219MIT OR Apache-2.0
identifyStrongly-typed UUIDs, statically associated with other types.1,218MIT OR Apache-2.0
castingCastFrom and CastInto traits for generic numeric casting1,215MIT
rs-pkgrust pkg for programming1,213MIT
provideTruly zero cost dependency injection1,212MIT OR Apache-2.0
common_hal_interfaceA common interface between Rust HALs, for use in the Iron Coder IDE1,209MIT
enum-values-deriveExposes enum values via reflection1,203MIT OR Apache-2.0
duration-extenderAdds fluent, highly readable methods (like .minutes(), .hours()) directly to integer types (u32, i64, etc.) to easily create…1,198MIT OR Apache-2.0
iter_modA macro for enumerating all the constants in a module1,195MIT
io-windowSeekable I/O adapter that limits operations to a byte range1,193MPL-2.0
thisisplural_derive#[derive(Plural)] for creating frictionless new types with a Vec, HashMap, etc.1,190MIT OR Apache-2.0
strut-utilIn-house utilities. Part of the Strut family.1,190MIT
maplike_deriveDerive macros for maplike.1,184MIT OR Apache-2.0
strut-syncSynchronization primitives. Part of the Strut family.1,181MIT
thisdiagnostic-derivederive macro for thisdiagnostic1,179Apache-2.0
kindestCostless typed identifiers backed by UUID, with kind readable in serialized versions1,176MIT
ensure_implTrait implementation assertion..1,175MIT OR Apache-2.0
qubit-errorShared error handling helpers for Rust applications1,168Apache-2.0
loop-letAn immutable loop structure that can be used as an expression.1,168non-standard
portal-solutions-id-arenaA simple, id-based arena.1,161MIT/Apache-2.0
iter_peek_endIs the current element the last one of a peekable iterator ? (`is_last()` and `is_not_last()`)1,160MIT OR Apache-2.0
microstringSmall, niche-able, stack allocated strings1,158Apache-2.0 OR MIT
uni_errorA simple, universal error type for Rust1,152MIT OR Apache-2.0
monadifyA library for functional programming abstractions in Rust, focusing on Monads, Functors, Applicatives, and related concepts.1,150MIT
lazymutSimilar to LazyCell, but use &mut self to get or initialization1,149MIT
funcallA lightweight Rust library that turns functions into JSON-callable tools1,146MIT
unsaferefAn unsafe reference without explicit lifetime1,144MIT
compoCompo is a general-purpose declarative and reactive component framework designed for single-threaded asynchronous execution,…1,140Apache-2.0
thisdiagnosticAdd nice user-facing diagnostics to your errors without being weird about it.1,139Apache-2.0
catalyserA comprehensive collection of extensions to simplify and enhane rust development.1,134non-standard
have_lenIs the container empty ? (`is_empty()` and `is_not_empty()`)1,128MIT OR Apache-2.0
macro_registryReusable proc-macro registry and source analysis infrastructure1,122MIT
url-staticSimple macro for compile-time URL validation1,119MIT OR Apache-2.0
injectablesA procedural macro library that enables field injection between Rust structs through #[injectable] and #[inject_fields]…1,114MIT OR Apache-2.0
extend-pinnedExtend but for Pin1,114MIT OR Apache-2.0
better-builderA library to derive an improved builder pattern for structs, leveraging Rust's type system.1,110MIT OR Apache-2.0
poly-onceA thread-safe cell providing async and sync initialization primitives similar to OnceLock1,109MIT
stable-typeOCaml inspired stable types1,101Apache-2.0
bastion-coreCore security guards for Bastion 1.0 (Jail, Shield, Guard) - Industrial-grade protection for Rust applications1,100MIT OR Apache-2.0
axum-confA library to simplify the use of Axum, Tokio and Postgres together using configuration. It comes with batteries included and many…1,100MIT
quarto-error-reportingStructured, source-aware diagnostics with pluggable rendering (ariadne or annotate-snippets) and a pluggable error-code catalog.1,098MIT
async-result-extAsync extensions for Result<T, E> with async closures.1,094MIT
strserA struct serializer for rust empowered with a macro1,082MIT
portable_intertraitAllow for inter-trait casting1,075MIT OR Apache-2.0
consumableConsume the value by replacing it with the default value and returning the previous value1,074MIT OR Apache-2.0
diagweaveCore runtime and macros re-export for diagweave error algebra and report diagweaveing.1,071MIT OR Apache-2.0
shellder-macrosA lightweight, type-safe dependency injection and application framework for Rust inspired by Spring.1,065Apache-2.0
estimate_sizeReplaces an iterator's `size_hint` with a custom value.1,064MIT
lesbar-macrosProcedural macros for string types that encode legible text.1,061MIT
derive_fnMacro to implement all three Fn traits1,061MIT
strdeserA struct serializer for rust empowered with a macro1,059MIT
continue_streamA Swift-style AsyncIterator.Continuation-style channel for Rust1,058MIT OR Apache-2.0
bijective-enum-mapConvert an enum to and from another type, with From (or TryFrom)1,056MIT OR Apache-2.0
dirk_frameworkDependency Injection for Rust1,053Apache-2.0
blueprint-dupe-deriveDerive Dupe for blueprint-dupe crate1,053MIT OR Apache-2.0
okkYet another approach to replacing the `Ok(())`.1,052MIT OR Apache-2.0
interrupt-readAn simple implementation of an interruptable reader.1,050MIT
once_cell_no_stdSync single assignment cells for `no_std`1,041MIT OR Apache-2.0
specializerLimited safe specialization on stable Rust with builder-like pattern1,039Apache-2.0 OR BSL-1.0 OR MIT
strutBackend in Rust: convenient and configurable with Strut.1,034MIT
karpal-algebraAbstract algebra structures for the Industrial Algebra ecosystem1,031Apache-2.0
enum-valuesExposes enum values via reflection1,030MIT OR Apache-2.0
prism3-functionCommon functional programming type aliases for Rust, providing Java-style functional interfaces1,028Apache-2.0
flowgentra-ai-macrosProcedural macros for FlowgentraAI handler registration1,026MIT
reliakit-primitivesReusable type-safe primitives for constrained and reliability-oriented Rust values.1,025MIT
ownitEasily turn borrowed type into owned values1,022MIT OR Apache-2.0
count-tts-innerA simple macro for counting any position tokens.1,014MIT
suckSuck data up through a channel1,007MIT
atomanA library for managing shared asynchronous data across threads. Provides safe concurrent access to application state with…1,006MIT
asenumSmall derive macro to safely convert the numerical value of an enum to the enum998Apache-2.0
libutils-issueA easy-to-use customizable error type997MIT
yadi_deriveMacros 0.1 implementation of #[derive(Injectable)].989MIT OR Apache-2.0
oneoffoneoff is a library for one-off types987MIT
libutils-cageA thread-safe static mutable wrapper984MIT
vec-iterLazy collection of iterated element, implementing iterators for random access978MIT
nounwind-macrosImplementation of the #[nounwind] attribute macro973Apache-2.0 OR MIT
dcelImplementation of doubly-connected edge list.972MIT OR Apache-2.0
seesaw-cligenerate traits from C header files970Apache-2.0 OR MIT
quickcheck-richderiveA `#[derive(Arbitrary)]` proc-macro emitting native `quickcheck::Arbitrary` impls (arbitrary + shrink).967MIT OR Apache-2.0
rustmorphismA Rust macro for creating functions with multiple implementations that are deterministically selected at compile-time966MIT
blueprint-dupeMarker for types which are cheap to clone965MIT OR Apache-2.0
advance-iterA small crate to help with "stepping through" iterators.960WTFPL
reliakit-ratelimitClock-agnostic token-bucket rate limiter with retry-after. no_std and zero-dependency.959MIT
evilthis crate allows using the ? operator as a shorthand for .unwrap() 😈957MIT OR Apache-2.0
datalitA zero-runtime fluent data description macro955MIT OR Apache-2.0
stratagem-macrosProvides a derive macro for automatically implementing the Commander trait, simplifying command-based state management with…952MIT OR Apache-2.0
diagweave-macrosProcedural macros for diagweave DSL: set! and union!.952MIT OR Apache-2.0
derail-reportTools for reporting `derail::Error`s.947MIT OR Apache-2.0
libutils-terminalA custom embedded terminal handler938MIT
shiplog-portsCore port traits for shiplog adapters: Ingestor, WorkstreamClusterer, Renderer, Redactor.935MIT OR Apache-2.0
enumtraitA library of macros for polymorphism using enums933non-standard
controlflow_inspectinspect_* methods for ControlFlow933MIT OR Apache-2.0
wx-dump微信数据导出工具932MPL-2.0
error-stack-macros2Community-made procedural macros for error-stack.927Apache-2.0
late-structLate-bound structure definitions.924MIT
karpal-proofAlgebraic law witnesses and refinement types for the Industrial Algebra ecosystem924Apache-2.0
rust_kafka_likeA Kafka-like message broker in Rust920MIT
bounded-static-derive-moreMacro to derive ToBoundedStatic and IntoBoundedStatic traits911Apache-2.0