Macros

Metaprogramming utilities and macro libraries for code generation. Packages among the 3,000 most downloaded in the past 90 days.

19 packages
  • Parse transform library

    235
    3.7m last 90 days
  • Function decorators for Elixir

    407
    1.0m last 90 days
  • ex_ast 0.13.1

    Search and replace Elixir code by AST pattern

    52
    510.6k last 90 days
  • horus 0.5.0

    Creates standalone modules from anonymous functions

    30
    416.3k last 90 days
  • ExConstructor generates constructor functions for your structs, handling map-vs-keyword-list, string-vs-atom-keys, and camelCase-vs-under_score issues automatically.

    297
    173.0k last 90 days
  • A library for defining structs with a type without writing boilerplate code.

    48
    73.2k last 90 days
  • Mix in public functions from external modules

    19
    19.9k last 90 days
  • Protobuf code generation as a mix task

    16
    13.0k last 90 days
  • Library to easily intercept function calls

    43
    12.4k last 90 days
  • Chain of decorators allowed in parse transforms

    1
    8.9k last 90 days
  • Delegate macros or all functions and macros to another module

    2
    8.3k last 90 days
  • Allows the use of `when` clauses on assignment statements as an alternative to using `if`, avoiding the need for boilerplate `else` clauses which return the original variables when the condition is `false`. For instance: ```elixir x = 1 when x == nil ```

    1
    7.1k last 90 days
  • arrows 0.2.1

    A handful of (mostly) arrow macros

    13
    6.7k last 90 days
  • Intercept function calls

    6.4k last 90 days
  • croma 0.13.0

    Elixir macro utilities to make type-based programming easier

    6.1k last 90 days
  • bottle 1.0.1

    Provides a set of useful guards to reduce boilerplate code

    2
    5.7k last 90 days
  • helper module for match specs

    25
    3.2k last 90 days
  • rustq 0.11.1

    Rust templates and quasiquoting for Elixir

    19
    3.2k last 90 days
  • pipe_to 0.2.1

    PipeTo operator `~>` is the enhanced pipe operator which can specify the target position.

    85
    3.1k last 90 days