CATEGORY
Development tools::Procedural macro helpers 1,202 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.
synParser for Rust source code1,997,204,642MIT OR Apache-2.0
proc-macro2A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use…1,380,262,922MIT OR Apache-2.0
quoteQuasi-quoting macro quote!(...)1,379,419,074MIT OR Apache-2.0
unicode-identDetermine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #311,162,007,749(MIT OR Apache-2.0) AND Unicode-3.0
clap_deriveParse command line argument by defining a struct, derive crate.646,909,159MIT OR Apache-2.0
strum_macrosHelpful macros for working with enums and strings550,982,792MIT
strumHelpful macros for working with enums and strings543,757,189MIT
proc-macro-crateReplacement for crate (macro_rules keyword) in proc-macros454,387,382MIT OR Apache-2.0
derive_moreAdds #[derive(x)] macros for more traits407,284,962MIT
proc-macro-errorAlmost drop-in replacement to panics in proc-macros313,483,842MIT OR Apache-2.0
ctorGlobal, no_std-compatible constructors for all platforms that run before main (like C/C++ __attribute__((constructor)))162,228,606Apache-2.0 OR MIT
proc-macro-hackProcedural macros in expression position153,532,491MIT OR Apache-2.0
proc-macro-error2Almost drop-in replacement to panics in proc-macros127,932,344MIT OR Apache-2.0
litrsParse and inspect Rust literals (i.e. tokens in the Rust programming language
representing fixed values). Particularly useful for…126,027,016MIT OR Apache-2.0
inventoryTyped distributed plugin registration106,663,400MIT OR Apache-2.0
enum_dispatchNear drop-in replacement for dynamic-dispatched method calls with up to 10x the speed67,824,349MIT OR Apache-2.0
getsetGetset, we're ready to go!
A procedural macro for generating the most basic getters and setters on fields.66,500,902MIT
impl-trait-for-tuplesAttribute macro to implement a trait for tuples46,805,760Apache-2.0/MIT
structmeta-derivederive macro for structmeta crate.37,908,967MIT OR Apache-2.0
structmetaParse Rust's attribute arguments by defining a struct.37,892,289MIT OR Apache-2.0
dtorGlobal, no_std-compatible destructors for all platforms that run after main (like C/C++ __attribute__((destructor)))37,031,487Apache-2.0 OR MIT
serde_tokenstreamA serde deserializer for proc_macro::TokenStreams33,063,207Apache-2.0
derive-gettersSimple boilerplate getters generator.30,860,800MIT
unicode-id-startDetermine whether characters have the ID_Start or ID_Continue properties according to Unicode Standard Annex #3129,710,811(MIT OR Apache-2.0) AND Unicode-3.0
proc-macro-utilslow-level utilities on proc-macro and proc-macro2 types29,009,748MIT OR Apache-2.0
attribute-deriveClap like parsing for attributes in proc-macros26,935,387MIT OR Apache-2.0
attribute-derive-macroClap for proc macro attributes26,918,687MIT
quote-useSupport `use` in procmacros hygienically26,745,699MIT
linkmeSafe cross-platform linker shenanigans26,611,986MIT OR Apache-2.0
sea-baeA Rust proc-macro attribute parser26,390,181MIT
quote-use-macrosSupport `use` in procmacros hygienically26,351,801MIT
derive_utilsA procedural macro helper for easily writing derive macros for enums.23,053,882Apache-2.0 OR MIT
syn_deriveDerive macros for `syn::Parse` and `quote::ToTokens`21,889,926MIT OR Apache-2.0
derive-syn-parseDerive macro for `syn::parse::Parse`18,444,445MIT OR Apache-2.0
syn-midProviding the features between "full" and "derive" of syn.16,913,032Apache-2.0 OR MIT
synomStripped-down Nom parser used by Syn16,196,996MIT/Apache-2.0
synthez-coreInternal implementations of `synthez` crate.16,005,177BlueOak-1.0.0
synthezSteroids for `syn`, `quote` and `proc-macro2` crates.15,992,718BlueOak-1.0.0
jni-macrosProcedural macros for the jni crate14,947,052MIT OR Apache-2.0
macro-stringEager evaluation of macros like `concat!` and `env!`14,880,707MIT OR Apache-2.0
macro_magicAllows the exporting and importing of the tokens of items across module, file, and crate boundaries14,187,590MIT
manyhowproc macro error handling à la anyhow x proc-macro-error11,313,723MIT OR Apache-2.0
manyhow-macrosMacro for manyhow11,298,397MIT OR Apache-2.0
docifyDocify allows you to live-embed at compile time pieces of code from throughout your project as rust doc examples.7,227,045MIT
find-crateFind the crate name from the current Cargo.toml.5,551,819Apache-2.0 OR MIT
spezMacro to specialize on the type of an expression4,805,433BSD-2-Clause
subenumA proc-macro to create subsets of enums, that can be converted
to and from.4,452,035MIT OR Apache-2.0
link-sectionLink-time initialized slices for Rust, with full support for Linux, macOS, Windows, WASM and many more platforms.3,680,426Apache-2.0 OR MIT
rustfmt-wrapperLibrary wrapper around rustfmt for use by code generators3,669,110Apache-2.0
macroificProc macro development utilities3,368,525Apache-2.0
linktime-proc-macroproc-macro helpers for linktime crates (ctors, dtors, linker sections)3,149,462Apache-2.0 OR MIT
proc-quoteA procedural macro implementation of quote!.2,771,679MIT/Apache-2.0
proc-quote-implA procedural macro implementation of quote!.2,639,202MIT/Apache-2.0
baeA Rust proc-macro attribute parser2,408,952MIT
zenoh-macrosInternal crate for zenoh.2,073,119EPL-2.0 OR Apache-2.0
hdf5-metno-deriveDerive macro for HDF5 structs and enums.2,022,282MIT OR Apache-2.0
safe-proc-macro2A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use…1,892,610MIT OR Apache-2.0
safe-quoteQuasi-quoting macro quote!(...)1,876,981MIT OR Apache-2.0
sea-strum_macrosHelpful macros for working with enums and strings1,858,750MIT
sea-strumHelpful macros for working with enums and strings1,851,469MIT
amplify_synAmplifying syn capabilities: helper functions for creating proc macro libraries1,585,220Apache-2.0
sourcefileRetain mapping information when concatenating source files, to make error
messages more useful1,396,038Apache-2.0/MIT
contractsDesign-by-contract attributes1,372,271MPL-2.0
bevy-inspector-eguiInspector plugin for the bevy game engine1,344,961MIT OR Apache-2.0
impl-toolsHelper macros: autoimpl1,099,698MIT/Apache-2.0
check_keywordA trait for String-like types to check if it is a keyword and convert it to a safe non-keyword if so.1,015,969MIT OR Apache-2.0
venialA very small syn885,902MIT
unsynn(Proc-macro) parsing made easy875,267MIT OR Apache-2.0
serde_synUse serde to parse Rust source code.751,205MIT
cpp_synmapSourcemap and full crate parsing support for `cpp_syn`583,128MIT/Apache-2.0
proc-macro-error3Almost drop-in replacement to panics in proc-macros509,159MIT OR Apache-2.0
ctor_bare_macrosMacros for registering constructor functions for Rust under no_std.480,882GPL-3.0-or-later OR Apache-2.0 OR MulanPSL-2.0
ctor_bareRegister constructor functions for Rust at complie time under no_std.480,601GPL-3.0-or-later OR Apache-2.0 OR MulanPSL-2.0
databakeTrait that lets structs represent themselves as (const) Rust expressions456,056Unicode-3.0
databake-deriveCustom derive for the databake crate450,106Unicode-3.0
mem_dbg-deriveProcedural macros for mem_dbg399,676Apache-2.0 OR MIT
utoipauto-coreRust Macros to automate the addition of Paths/Schemas to Utoipa crate, simulating Reflection during the compilation phase394,969MIT OR Apache-2.0
utoipauto-macroRust Macros to automate the addition of Paths/Schemas to Utoipa crate, simulating Reflection during the compilation phase393,365MIT OR Apache-2.0
utoipautoRust Macros to automate the addition of Paths/Schemas to Utoipa crate, simulating Reflection during the compilation phase388,848MIT OR Apache-2.0
uiautomation_deriveUI Automation Derive341,012Apache-2.0
oxicode_deriveDerive macros for oxicode308,523Apache-2.0
oar-ocr-deriveInternal procedural derive macros for oar-ocr (implementation detail, not for direct use)285,858Apache-2.0
multiversx-sc-deriveMultiversX smart contract API procedural macros240,248GPL-3.0-only
elrond-wasm-deriveElrond WebAssembly smart contract API procedural macros227,092GPL-3.0-only
structstruckNested struct and enum definitions226,568MIT
jni_fnJNI-compatible method signature generator221,097MIT OR Apache-2.0
parse-variantsDerive the syn::parse::Parse trait for enumerations and use it to comfortably parse a variant of the enumeration219,512MIT
schemaAccess the schema for a Rust item217,412Apache-2.0
schema-derivederive macro for the schema crate204,920Apache-2.0
parse-variants-deriveMacros for the parse-variants crate201,049MIT
crate_interfaceProvides a way to define an interface (trait) in a crate, but can implement or use it in any crate.184,186Apache-2.0
epserde-deriveProcedural macros for ε-serde182,154Apache-2.0 OR MIT
snafu-virtstack-macroProc macro for snafu-virtstack providing automatic virtual stack trace implementation164,050Apache-2.0
verus_synParser for Rust source code extended to support Verus151,242MIT OR Apache-2.0
archmage-macrosProc-macros for archmage SIMD capability tokens150,229MIT OR Apache-2.0
slicesConvert string literals to static unsigned integer slices in compile time.148,929Apache-2.0 OR MIT
percpu_macrosMacros to define and access a per-CPU data structure148,640GPL-3.0-or-later OR Apache-2.0 OR MulanPSL-2.0
percpuDefine and access per-CPU data structures148,222GPL-3.0-or-later OR Apache-2.0 OR MulanPSL-2.0
procoutOutput a proc macro's TokenStream to a file.133,623MIT
dharitri-wasm-deriveDharitri WebAssembly smart contract API procedural macros133,189GPL-3.0-only
code-productmacro producing multiple expansions130,707MIT OR Apache-2.0
code-product-libmacro producing multiple expansions130,180MIT OR Apache-2.0
code-product-macromacro producing multiple expansions129,904MIT OR Apache-2.0
url-macroA compile-time URL validation macro. Parses and checks URLs at compile-time, converting valid URLs into `url::Url` objects.…127,395Apache-2.0 OR MIT
quote_intoEasily & efficiently generate code by quoting it in a macro115,710MIT OR Apache-2.0
aristo-macrosAristo SDK proc-macros: #[aristo::intent], #[aristo::assume].114,836MIT
miden-utils-core-deriveProc macro to derive enum dispatch trait implementations on miden-core structs114,487MIT OR Apache-2.0
cling-deriveDerive macro for cling. You should not use this crate directly, instead use cling.106,806Apache-2.0 OR MIT
syn-pathA simple macro to declare a syn::Path at compile time94,2570BSD
syn-serdeLibrary to serialize and deserialize Syn syntax trees.88,592Apache-2.0 OR MIT
dharitri-sc-deriveDharitri smart contract API procedural macros87,281GPL-3.0-only
better-bae-macrosA Rust proc-macro attribute parser86,980MIT
better-baeA Rust proc-macro attribute parser85,932MIT
propertyGenerate several common methods for structs automatically.82,490Apache-2.0 OR MIT
clap_derive-v3Parse command line argument by defining a struct, derive crate.80,750MIT OR Apache-2.0
fast-catAn ergonomic macro for efficient string concatenation with a single memory allocation.79,782MIT OR Apache-2.0
rustfmt-config_proc_macroA collection of procedural macros for rustfmt78,926Apache-2.0/MIT
extern-traitOpaque types for traits using static dispatch76,007MIT OR Apache-2.0
astarte-device-sdk-deriveDerive macros implementation used by Astarte Device SDK74,373Apache-2.0
syn-helpersFramework for building derive macros61,970MIT
extern-trait-implProc-macro implementation for extern-trait60,013MIT OR Apache-2.0
axconfig-macrosProcedural macros for converting TOML format configurations to Rust constant definitions.59,820GPL-3.0-or-later OR Apache-2.0 OR MulanPSL-2.0
vyre-macrosProcedural macros for vyre compiler passes - #[vyre_pass], #[vyre_ast_registry]58,282MIT OR Apache-2.0
reflectThe "but I thought Rust doesn't have reflection?" memorial brand new way of defining procedural macros.58,019MIT OR Apache-2.0
add_getters_settersMakes it much easier to add getters and setters for fields of structures.
Done by simply just adding some attributes to the…57,418MIT
disabled_contractsA clearly stub version of the `contracts` crate.52,355MIT
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
zynA proc macro framework with templates, composable elements, and built-in diagnostics51,894MIT
miden-protocol-macrosProcedural macros for Miden protocol50,533MIT
cpsAssists in the creation of readable and maintainable macro_rules! macros48,857MIT
wattRuntime for executing Rust procedural macros compiled as WebAssembly.48,775MIT OR Apache-2.0
syn-file-expandLibrary to load full source code of multi-file crates48,471MIT/Apache-2.0
axplat-macrosProcedural macros for the `axplat` crate46,124GPL-3.0-or-later OR Apache-2.0 OR MulanPSL-2.0
cargo-manifest-proc-macrosFind the syn::Path to your own crate from proc-macros reliably.45,472MIT OR Apache-2.0
template-quote-implA new-fashioned quote! macro implementation with pretty template-engine-like syntax44,850MIT
template-quoteA new-fashioned quote! macro implementation with pretty template-engine-like syntax44,182MIT
perfect-deriveProvides a prototype of the proposed perfect_derive macro43,502MIT
compose_spec_macrosProcedural macros for use in the compose_spec crate42,985MPL-2.0
call2-for-synApply parser functions to proc-macro2 token streams42,917MIT OR Apache-2.0
linktimeLink-time registration patterns for Rust (ctors, dtors, link-time slices and sections)41,688Apache-2.0 OR MIT
enso-macro-utilsUtilities for writing macros.41,271non-standard
devela_macrosprocedural macros for devela41,024MIT 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-traits-deriveDerive macros for the value-traits crate40,321Apache-2.0 OR MIT
near-kit-macrosProc macros for near-kit typed contract interfaces36,855MIT OR Apache-2.0
penumMake enum conform to a given pattern36,126MIT OR Apache-2.0
config-manager-procMacro implementation for config-manager-rs derives35,742MIT
fut-retA rust library to parse the return type generated by async_trait in procedural macro.33,691MIT
mynMinimalist Rust syntax parsing for procedural macros33,061MIT
axconfig-gen-macrosProcedural macros for converting TOML format configurations to Rust constant definitions.33,033GPL-3.0-or-later OR Apache-2.0 OR MulanPSL-2.0
boltffi_macrosProcedural macros for BoltFFI - #[data], #[export], #[class] attributes32,885MIT
assert-tokenstreams-eqA utility for comparing token streams: applies rustfmt for consistent formatting and leverages pretty_assertions to clearly…32,156MIT OR Apache-2.0
better-debugA cooler, and sane Debug macro31,210MIT
gsetA procedural macro for generating the most basic getters and setters on fields.30,113MIT
proc-macro-toolSome common simple tool for proc-macro impl30,004MIT
drylibRust macro-library for Don't Repeating Yourself29,820MIT OR Apache-2.0
spring-macrosspring-rs Procedural Macros implementation29,619MIT
pagetop-macrosUna colección de macros que mejoran la experiencia de desarrollo con PageTop.28,435MIT OR Apache-2.0
unquoteA reverse quote macro... that is: A macro to parse input from a ParseStream according to a given pattern.28,395MIT OR Apache-2.0
getset-scopedGetset, we're ready to go!
A procedural macro for generating the most basic getters and setters on fields.28,068MIT
janetrs_macrosAttribute macros for JanetRS27,734non-standard
unhygienic2A dead simple macro to erase macro hygiene.27,025MIT
syn-codegenSyntax tree describing Syn's syntax tree26,259MIT OR Apache-2.0
decent-synquote-alternativeAn alternative to the syn and quote crates for when you want to write your own derive proc-macro. It was originally based on the…25,233MIT
tuplez-macrosProcedural macros implementation of tuplez25,208MIT OR Apache-2.0
rdf-deriveRDF.rs is a Rust framework for working with RDF knowledge graphs.24,308Unlicense
syn-unnamed-structExtends syn expressions and meta structs with unnamed structs and meta lists24,204MIT OR Apache-2.0
fieldx_derive_supportDerive proc macros for fieldx_derive crate23,718non-standard
unfmt_macrosA compile-time pattern matching library that reverses the interpolation process of `format!`.23,297Apache-2.0
sort_by_deriveDerive macro SortBy and helper macros EnumAccessor and EnumSequence, deriving traits `Ord`, `PartialOrd`, `Eq`, `PartialEq` and…23,093Unlicense
derive_richHelps you to create richful function for your structs22,934MIT OR Apache-2.0
envoke_deriveA proc macro for loading environment variables into struct fields automatically.22,918MIT OR Apache-2.0
open_ai_rust_fn_call_extensionProc-macro toolkit for OpenAI function-calling: derive JSON-schema from Rust types, annotate functions with tool schemas, and…22,723MIT
protoflow-deriveProtoflow implements flow-based programming (FBP) for Rust using Protocol Buffers messages.21,987Unlicense
fieldx_deriveDerive proc macros for fieldx crate21,577non-standard
moosicbox_env_utilsMoosicBox env utilities package21,573MPL-2.0
set_sliceA macro for assigning values to slices21,532Apache-2.0
fieldxProcedural macro for constructing structs with lazily initialized fields, builder pattern, and serde support with a focus on…21,256non-standard
zoetAdds `#[zoet]` macro to reduce boilerplate when implementing common traits.20,917MIT
llm-toolkit-macrosInternal procedural macros for llm-toolkit.20,012MIT
variadiz-macrosProcedural macros implementation of variadiz20,000MIT OR Apache-2.0
macro_rules_attrUse declarative macros as proc_macro attributes. (`#[apply]` / `#[extend]` your `macro_rules!`)19,952MIT
symbols-modelsProc-macro utility to populate enums from database data (shared traits)19,762WTFPL
swift-mt-message-macrosDerive macros for SWIFT MT message parsing library19,695Apache-2.0
mock_deriveAn easy to setup, rich mocking library for the Rust programming language.19,398MIT
substructA proc-macro to create subsets of structs19,356MIT OR Apache-2.0
counting-macrosStateful numeric incrementing macros18,963MIT OR Apache-2.0
wasm-bindgen-structMacro to make declaring `wasm-bindgen` imports much easier.18,827MIT
bevycheckHelpful bevy error messages by proc-macro18,677MIT
playdate-rs-macrosHelpful macros for playdate-rs18,605MIT OR Apache-2.0
fieldx_auxVarious types and tools useful for fieldx crates and, potentially, to users of fieldx18,561non-standard
future_form_macrosProc macros for future_form18,302MIT OR Apache-2.0
symbolsProc-macro utility to populate enums from database data18,245WTFPL
syn_strThis library is what syn is to proc_macro::TokenStream for proc_macro::TokenStream::to_string,quote! being format! with…17,908Apache-2.0/MIT
EnumBitFlagsEnumBitFlags is an implementation of flags support for enums17,682MIT
cvarsConfiguration variables - a simple and ergonomic way to store and edit configuration at runtime17,670AGPL-3.0-or-later
tokenstream2-tmplRuntime TokenStream interpolation for Rust macros17,614MIT
amplify_derive_helpersAmplifying Rust language capabilities: helper functions for creating proc macro libraries17,522MIT