Overview

View Source
Macula Logo

Macula HTTP/3 Mesh

A distributed platform for decentralized applications

License Erlang/OTP


Table of Contents

πŸ“– Executive Summary - What Macula is and why it matters

πŸš€ Quick Start - Get running in 15 minutes

πŸ’‘ Hello World Tutorial - Build a distributed chat app in 30 minutes

πŸ“š Technical Documentation - Complete architecture and implementation guides

πŸ”§ Development Guide - Setup, testing, and contributing

πŸ—οΈ Comparisons - How Macula compares to similar systems

πŸ“Š Use Cases - Real-world applications and examples

πŸ“ Project Structure - Module organization and dependencies

πŸ—ΊοΈ Roadmap - 20-week implementation plan

πŸ“„ Changelog - Version history and migration guides


What is Macula?

Macula is infrastructure for building decentralized applications and services that operate autonomously at the edge, without dependency on centralized cloud infrastructure.

Key Features:

βœ… BEAM-native (Erlang/Elixir OTP supervision and fault tolerance) βœ… HTTP/3 (QUIC) transport (modern, encrypted, NAT-friendly) βœ… Edge-first design (works through firewalls and NAT) βœ… Built-in pub/sub & RPC (no external message broker needed) βœ… Multi-tenancy (realm isolation for SaaS and shared infrastructure) βœ… Self-organizing mesh (DHT-based service discovery, O(log N) routing) βœ… Production-ready patterns (OTP behaviors, comprehensive testing, memory management)


Installation

Elixir (mix.exs):

def deps do
  [
    {:macula, "~> 0.6"}
  ]
end

Erlang (rebar.config):

{deps, [
    {macula, "0.6.6"}
]}.

Development Setup

# Clone the repository
git clone https://github.com/macula-io/macula.git
cd macula

# Fetch dependencies
rebar3 get-deps

# Compile
rebar3 compile

# Run tests
rebar3 eunit

# Start a shell with Macula loaded
rebar3 shell

Contributing

We welcome contributions! See Development Guide for setup instructions and Contributing Guide for guidelines.


License

Macula is licensed under the Apache License 2.0. See LICENSE for details.


Community & Support


Built with ❀️ for the BEAM community