synrc/mad

⚡ MAD: Managing Application Dependencies LING/UNIX

Erlang

172

719 commits

updated Jun 1, 2026

See the code

README

MAD: Manage Dependencies

Actions Status Build Status Hex pm

A simple rebar-compatible dependency manager and developer tool with plugins for Windows, Linux and Mac.

MAD

Goals

It shall:

  • be compatible with rebar configuration.
  • be as small and fast as possible.

Features

  • Support rebar.config
  • Support OTP releases and directory structure
  • Fast deps resolving and cycles detecting
  • Fast compilation
  • Small codebase: 1K LOC
  • DTL/YECC/LEEX/PORT/SCRIPT/APP/ERL compilation
  • BEAM bundles (single-file escriptized app)
  • BEAM releases (faster and smaller than RELX)
  • Start/Stop/Attach
  • Static files generation with node.js tools

Build

    $ make

And put mad to PATH.

Building OTP Release

Releases are bundles made by release_handler module of sasl applications. It has it own fat bootstripts along with erlang runtime included. This allows you to distribute you applications with copy deploy without Erlang prerequisite.

    $ ./mad app web sample
    $ cd sample
    $ ../mad dep com pla rel

Documentation

If you are new or need to determine whether the MAD architecture and philosophy is a fit for your project

  • Official MAD brochure PDF

Credits

  • Maxim Sokhatsky
  • Sina Samavati
  • Vladimir Kirillov
  • Taras Taraskin
beam
erlang
escript
peg
ports
yecc

Contributors

5HT

584 commits

sinasamavati

63 commits

mihawk

15 commits

proger

12 commits

synrc/mad

⚡ MAD: Managing Application Dependencies LING/UNIX

Erlang

172

719 commits

updated Jun 1, 2026

See the code

README

MAD: Manage Dependencies

Actions Status Build Status Hex pm

A simple rebar-compatible dependency manager and developer tool with plugins for Windows, Linux and Mac.

MAD

Goals

It shall:

  • be compatible with rebar configuration.
  • be as small and fast as possible.

Features

  • Support rebar.config
  • Support OTP releases and directory structure
  • Fast deps resolving and cycles detecting
  • Fast compilation
  • Small codebase: 1K LOC
  • DTL/YECC/LEEX/PORT/SCRIPT/APP/ERL compilation
  • BEAM bundles (single-file escriptized app)
  • BEAM releases (faster and smaller than RELX)
  • Start/Stop/Attach
  • Static files generation with node.js tools

Build

    $ make

And put mad to PATH.

Building OTP Release

Releases are bundles made by release_handler module of sasl applications. It has it own fat bootstripts along with erlang runtime included. This allows you to distribute you applications with copy deploy without Erlang prerequisite.

    $ ./mad app web sample
    $ cd sample
    $ ../mad dep com pla rel

Documentation

If you are new or need to determine whether the MAD architecture and philosophy is a fit for your project

  • Official MAD brochure PDF

Credits

  • Maxim Sokhatsky
  • Sina Samavati
  • Vladimir Kirillov
  • Taras Taraskin
beam
erlang
escript
peg
ports
yecc

Contributors

5HT

584 commits

sinasamavati

63 commits

mihawk

15 commits

proger

12 commits

Languages

Erlang

64.1%

TeX

22.5%

HTML

10.0%

CSS

2.6%