Macula HTTP/3 Mesh
View SourceA distributed mesh networking platform for the BEAM, built on HTTP/3/QUIC
Vision
Macula is a unique, standards-based distributed networking layer for Erlang/Elixir applications that:
- Uses HTTP/3 (QUIC) for NAT-friendly, firewall-friendly transport
- Forms self-organizing mesh topologies at the edge
- Provides pub/sub and RPC primitives
- Scales to thousands of nodes
- Supports multi-tenancy and realm isolation
- Delivers the "Wow! How do they do it?" factor
Quick Start
# 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
See Quick Start Guide for detailed instructions.
Architecture
Macula is organized as an Erlang umbrella application with 12 core libraries.
See Project Structure for complete details.
Documentation
📚 Start Here: Documentation Root
Essential Reading
- Quick Start Guide - Get running in 15 minutes
- Hello World Tutorial - Build a distributed chat app
- Technical Roadmap - 20-week implementation plan
See Documentation Status for full inventory.
Development Status
Current Phase: Foundation (Weeks 1-4)
Completion:
- ✅ Architecture design complete
- ✅ Project structure initialized (12 core libraries)
- ✅ Documentation comprehensive (34% complete, 6/21 docs)
- ✅ Build system configured (rebar3 + QUIC + mDNS)
- ✅ All dependencies compiling successfully
- 🚧 Core libraries implementation in progress
Dependencies:
- QUIC transport: quicer (wraps Microsoft MsQuic)
- mDNS discovery: shortishly/mdns (via _checkouts, see MDNS_SETUP.md)
- Process registry: gproc
- Environment config: shortishly/envy (via _checkouts)
Contributing
We welcome contributions! See Contributing Guide.
License
Macula is licensed under the Apache License 2.0. See LICENSE for details.
Built with ❤️ by the Macula team