Macros

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

18 packages
  • Parse transform library

    235
    3.8m last 90 days
  • Function decorators for Elixir

    407
    1.1m last 90 days
  • ex_ast 0.16.0

    Search and replace Elixir code by AST pattern

    53
    647.0k last 90 days
  • horus 0.5.1

    Creates standalone modules from anonymous functions

    31
    477.5k 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
    186.6k last 90 days
  • A library for defining structs with a type without writing boilerplate code.

    48
    78.4k last 90 days
  • Protobuf code generation as a mix task

    16
    26.0k last 90 days
  • Mix in public functions from external modules

    19
    24.9k last 90 days
  • Library to easily intercept function calls

    43
    15.6k last 90 days
  • bottle 1.0.1

    Provides a set of useful guards to reduce boilerplate code

    2
    8.9k last 90 days
  • Chain of decorators allowed in parse transforms

    1
    8.6k last 90 days
  • Intercept function calls

    7.1k last 90 days
  • arrows 0.2.1

    A handful of (mostly) arrow macros

    13
    7.1k last 90 days
  • Delegate macros or all functions and macros to another module

    2
    7.0k last 90 days
  • croma 0.13.0

    Elixir macro utilities to make type-based programming easier

    6.1k last 90 days
  • helper module for match specs

    25
    4.2k 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
    3.8k last 90 days
  • pipe_to 0.2.1

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

    85
    3.2k last 90 days