Macros

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

30 packages
  • Parse transform library

    234
    2.6m last 90 days
  • Function decorators for Elixir

    401
    735.0k last 90 days
  • horus 0.3.1

    Creates standalone modules from anonymous functions

    29
    386.2k 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.

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

    45
    34.9k last 90 days
  • Library to easily intercept function calls

    43
    10.1k last 90 days
  • Mix in public functions from external modules

    19
    9.8k last 90 days
  • Chain of decorators allowed in parse transforms

    1
    9.6k last 90 days
  • pipe 0.0.2

    An Elixir extension that extends the pipe (|>) operator through macros.

    324
    9.1k last 90 days
  • matcha 0.1.10

    First-class match specification and match patterns for Elixir

    91
    7.1k last 90 days
  • Function decorators for Erlang.

    7
    7.0k last 90 days
  • bottle 1.0.1

    Provides a set of useful guards to reduce boilerplate code

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

    23
    5.9k last 90 days
  • Protobuf code generation as a mix task

    16
    5.8k last 90 days
  • Delegate macros or all functions and macros to another module

    2
    5.1k last 90 days
  • expat 1.0.5

    Re-usable composable patterns with guards

    175
    5.0k last 90 days
  • JSON Schema macro generator

    122
    4.8k last 90 days
  • croma 0.12.0

    Elixir macro utilities to make type-based programming easier

    4.1k last 90 days
  • bristow 0.2.2

    Create function's alias

    0
    3.5k last 90 days
  • compile-time named arguments for Elixir functions and macro

    19
    3.4k last 90 days
  • Parse transform library for Erlang

    13
    3.1k last 90 days
  • arrows 0.2.1

    A handful of (mostly) arrow macros

    12
    2.8k last 90 days
  • cut 1.0.3

    Syntax extensions that adds support for cuts Erlang

    8
    2.7k 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
    2.3k last 90 days
  • while 0.2.4

    Provides a general functional `reduce_while(acc, fun)` for use without an Enum. Additionally provides syntax sugar to simulate a non-functional `while` as proof of concept on what can be done with macros.

    1
    1.8k last 90 days
  • pipe_to 0.2.1

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

    85
    1.8k last 90 days
  • Javascript-style destructuring for Elixir

    110
    1.7k last 90 days
  • deco 0.1.2

    Minimalist Function Decorators

    23
    1.6k last 90 days
  • Convenience macros to eliminate laborious typing. Provides macros for short map, string keyed map, keyword lists, and structs (ES6 like style)

    22
    1.6k last 90 days
  • This library implements macros to define contants and enums that can be used in guards

    4
    1.4k last 90 days