Macros

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

22 packages
  • Parse transform library

    235
    3.4m last 90 days
  • Function decorators for Elixir

    406
    868.5k last 90 days
  • horus 0.4.0

    Creates standalone modules from anonymous functions

    30
    387.0k last 90 days
  • ex_ast 0.12.10

    Search and replace Elixir code by AST pattern

    49
    266.9k 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.

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

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

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

    16
    11.3k last 90 days
  • Chain of decorators allowed in parse transforms

    1
    9.1k 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.3k last 90 days
  • Delegate macros or all functions and macros to another module

    2
    7.1k last 90 days
  • arrows 0.2.1

    A handful of (mostly) arrow macros

    13
    6.6k last 90 days
  • Aicacia Handler macro

    5.2k last 90 days
  • The anaphoric macro collection for Elixir

    18
    5.2k last 90 days
  • anka 0.1.2

    Anka and its binding projects provide base model structure and macros to increase modularity of Elixir projects with DRY principle.

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

    4
    4.8k last 90 days
  • Library to easily intercept function calls

    43
    4.7k last 90 days
  • croma 0.13.0

    Elixir macro utilities to make type-based programming easier

    4.3k last 90 days
  • matcha 0.1.10

    First-class match specification and match patterns for Elixir

    92
    4.3k last 90 days
  • Intercept function calls

    4.0k last 90 days
  • bottle 1.0.1

    Provides a set of useful guards to reduce boilerplate code

    2
    4.0k last 90 days
  • amlapio 0.2.0

    Amlapio: Adding a Map API to a GenServer or Module with Agent-held State A use macro to add a Map API (e.g. get, put, pop, etc) to a GenServer's state or a module's state held in an Agent.

    0
    3.8k last 90 days