Packages

macula

0.20.25
7.0.0 6.0.0 5.2.2 5.2.1 5.2.0 5.1.0 5.0.0 4.8.0 4.7.1 4.7.0 4.6.0 4.5.0 4.4.10 4.4.9 4.4.8 4.4.7 4.4.6 4.4.5 4.4.4 4.4.3 4.4.2 4.4.1 4.4.0 4.3.1 4.3.0 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.1 4.1.0 4.0.0 3.16.0 3.15.3 3.15.2 3.15.1 3.14.0 3.13.0 3.12.1 3.12.0 3.11.1 3.11.0 3.10.3 3.10.2 3.10.1 3.9.0 3.8.0 3.7.0 3.5.0 3.4.0 3.3.0 3.2.0 3.1.0 3.0.0 2.1.1 2.1.0 2.0.0 1.5.2 1.5.1 1.4.30 1.4.29 1.4.28 1.4.27 1.4.26 1.4.25 1.4.24 1.4.23 1.4.22 1.4.21 1.4.20 1.4.19 1.4.18 1.4.17 1.4.16 1.4.15 1.4.14 1.4.13 1.4.11 1.4.10 1.4.9 1.4.8 1.4.7 1.4.6 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 1.3.1 1.3.0 1.2.0 1.1.0 1.0.10 1.0.9 1.0.8 1.0.7 1.0.6 1.0.5 1.0.4 1.0.3 1.0.2 1.0.1 1.0.0 0.48.6 0.48.5 0.48.4 0.48.3 0.48.2 0.48.1 0.48.0 0.47.1 0.47.0 0.46.3 0.46.1 0.46.0 0.45.3 0.45.2 0.45.1 0.45.0 0.44.2 0.44.1 0.44.0 0.43.3 0.43.2 0.43.1 0.43.0 0.42.9 0.42.8 0.42.7 0.42.6 0.42.5 0.42.4 0.42.3 0.42.2 0.42.1 0.42.0 0.41.1 0.41.0 0.40.1 0.40.0 0.39.9 0.39.8 0.39.7 0.39.6 0.39.5 0.39.4 0.39.3 0.39.2 0.39.1 0.39.0 0.38.8 0.38.7 0.38.6 0.38.5 0.38.4 0.38.3 0.38.2 0.38.1 0.38.0 0.37.7 0.37.6 0.37.5 0.37.4 0.37.3 0.37.2 0.37.1 0.37.0 0.36.6 0.36.5 0.36.4 0.36.3 0.36.2 0.36.1 0.36.0 0.35.4 0.35.3 0.35.2 0.35.1 0.35.0 0.34.1 0.34.0 0.33.1 0.33.0 0.32.5 0.32.4 0.32.3 0.32.2 0.32.1 0.32.0 0.31.9 0.31.8 0.31.7 0.31.6 0.31.5 0.31.4 0.31.3 0.31.2 0.31.1 0.31.0 0.30.10 0.30.9 0.30.8 0.30.7 0.30.6 0.30.5 0.30.4 0.30.3 0.30.2 0.30.1 0.30.0 0.29.0 0.28.3 0.28.2 0.28.1 0.28.0 0.27.1 0.27.0 0.26.1 0.26.0 0.25.6 0.25.5 0.25.4 0.25.3 0.25.2 0.25.1 0.25.0 0.24.6 0.24.5 0.24.4 0.24.3 0.24.2 0.24.1 0.24.0 0.23.3 0.23.2 0.23.1 0.23.0 0.22.12 0.22.11 0.22.10 0.22.9 0.22.8 0.22.7 0.22.6 0.22.5 0.22.4 0.22.3 0.22.2 0.22.1 0.22.0 0.21.7 0.21.6 0.21.5 0.21.4 0.21.2 0.21.1 0.21.0 0.20.25 0.20.24 0.20.23 0.20.22 0.20.21 0.20.20 0.20.19 0.20.18 0.20.17 0.20.16 0.20.15 0.20.14 0.20.13 0.20.12 0.20.11 0.20.10 0.20.9 0.20.8 0.20.7 0.20.6 0.20.5 0.20.3 0.20.2 0.20.1 0.20.0 0.19.2 0.19.1 0.19.0 0.18.1 0.18.0 0.17.4 0.17.3 0.17.2 0.17.1 0.17.0 0.16.6 0.16.5 0.16.4 0.16.3 0.16.2 0.16.1 0.16.0 0.15.1 0.15.0 0.14.3 0.14.2 0.14.1 0.14.0 0.12.6 0.12.5 0.12.3 0.11.3 0.10.2 0.10.1 0.10.0 0.9.2 0.9.1 0.9.0 0.8.25 0.8.24 0.8.23 0.8.22 0.8.21 0.8.20 0.8.19 0.8.18 0.8.17 0.8.16 0.8.15 0.8.14 0.8.13 0.8.12 0.8.11 0.8.10 0.8.9 0.8.8 0.8.7 0.8.6 0.8.5 0.8.4 0.8.3 0.8.2 0.8.1 0.8.0 0.7.30 0.7.29 0.7.28 0.7.27 0.7.26 0.7.25 0.7.24 0.7.23 0.7.22 0.7.21 0.7.20 0.7.19 0.7.18 0.7.17 0.7.16 0.7.15 0.7.14 0.7.13 0.7.12 0.7.11 0.7.10 0.7.9 0.7.8 0.7.7 0.7.6 0.7.5 0.7.4 0.7.3 0.7.2 0.7.1 0.7.0 0.6.7 0.6.6 0.6.5 0.6.4 0.6.3 0.6.2 0.6.1 0.6.0 0.5.0 0.4.4 0.4.3 0.4.2 0.4.1 0.4.0 0.3.4 0.3.3 0.3.2 0.3.1

Macula HTTP/3 Mesh SDK — connect, subscribe, publish, call, advertise

Current section

Files

Jump to
macula rebar.config
Raw

rebar.config

%% -*- mode: erlang -*-
%% Macula HTTP/3 Mesh - Root Rebar3 Configuration
{erl_opts, [
debug_info,
warnings_as_errors,
warn_export_vars,
warn_unused_vars,
warn_obsolete_guard
]}.
%% Include subdirectories in src/ for compilation
{src_dirs, [
"src",
"src/macula_bootstrap_system",
"src/macula_bridge_system",
"src/macula_dist_system",
"src/macula_gateway_system",
"src/macula_nat_system",
"src/macula_peer_system",
"src/macula_pubsub_system",
"src/macula_rpc_system",
"src/macula_routing_system",
"src/macula_membership_system",
"src/macula_platform_system"
]}.
{deps, [
%% QUIC transport (using Hex for publishable packages)
{quicer, "0.2.15"},
%% MessagePack serialization
{msgpack, "0.8.1"},
%% Process registry
{gproc, "0.9.1"},
%% mDNS local discovery (optional - hex.pm package)
{macula_mdns, "0.1.0"},
%% Telemetry for observability and metrics
{telemetry, "1.3.0"}
%% JSON encoding: Using built-in json module (OTP 27+)
%% Note: Authorization (v0.17.0+) uses inline Erlang implementations
%% for DID parsing and UCAN validation - no external NIF dependency
%% Note: Ra/Raft was removed in v0.14.0
%% Macula uses CRDTs (macula_crdt.erl) for masterless state management
%% See architecture/ROADMAP.md for details
]}.
{project_plugins, [
rebar3_hex,
rebar3_proper,
rebar3_ex_doc
]}.
%% Test configuration
{eunit_opts, [
verbose,
{dir, "test"}, %% Top-level tests
{dir, "test/macula_bootstrap_system"},
{dir, "test/macula_bridge_system"},
{dir, "test/macula_dist_system"},
{dir, "test/macula_gateway_system"},
{dir, "test/macula_nat_system"},
{dir, "test/macula_peer_system"},
{dir, "test/macula_pubsub_system"},
{dir, "test/macula_rpc_system"},
{dir, "test/macula_routing_system"},
{dir, "test/macula_membership_system"},
{dir, "test/macula_platform_system"}
]}.
{cover_enabled, true}.
{cover_opts, [verbose]}.
{cover_excl_mods, []}. %% Modules to exclude from coverage (e.g., generated code)
{cover_print_enabled, true}.
{cover_export_enabled, true}.
{ct_opts, [
{sys_config, "config/test.sys.config"}
]}.
{dialyzer, [
{warnings, [
no_return,
no_unused,
no_improper_lists,
no_fun_app,
no_match,
no_opaque,
no_fail_call,
error_handling
]},
{plt_apps, top_level_deps},
{plt_extra_apps, []},
{plt_location, local},
{base_plt_apps, [erts, kernel, stdlib, crypto, public_key, ssl]},
{base_plt_location, global}
]}.
%% Shell configuration
{shell, [
{apps, [macula]},
{config, "config/sys.config"}
]}.
%% Release configuration
{relx, [
{release, {macula, "0.17.1"}, [
macula,
sasl,
runtime_tools
%% observer - removed for headless deployments (requires wx/OpenGL)
]},
{mode, dev},
{include_erts, true},
{extended_start_script, true},
{sys_config, "./config/sys.config"},
{vm_args, "./config/vm.args"},
{overlay, [
{mkdir, "log"},
{mkdir, "data"},
{copy, "README.md", "README.md"},
{copy, "LICENSE", "LICENSE"}
]}
]}.
%% Profiles
{profiles, [
{test, [
{deps, [
{proper, "1.4.0"},
{meck, "0.9.2"}
]},
{erl_opts, [nowarn_export_all]},
{extra_src_dirs, [
"test",
"test/macula_bootstrap_system",
"test/macula_dist_system",
"test/macula_gateway_system",
"test/macula_peer_system",
"test/macula_pubsub_system",
"test/macula_rpc_system",
"test/macula_routing_system",
"test/macula_membership_system",
"test/macula_platform_system",
"test/e2e",
"test/integration"
]}
]},
{prod, [
{erl_opts, [
no_debug_info,
deterministic
]},
{relx, [
{mode, prod},
{dev_mode, false},
{include_src, false}
]}
]},
{lint, [
{plugins, [
{rebar3_lint, "3.2.5"}
]}
]}
]}.
%% Documentation
{ex_doc, [
{extras, [
{"README.md", #{title => "Overview"}},
{"GETTING_STARTED.md", #{title => "Getting Started"}},
{"ARCHITECTURE.md", #{title => "Architecture Guide"}},
{"CHANGELOG.md", #{title => "Changelog"}},
{"LICENSE", #{title => "License"}},
%% Business Documentation
{"docs/business/OVERVIEW.md", #{title => "Platform Overview"}},
{"docs/business/MOTIVATION.md", #{title => "Why Macula"}},
{"docs/business/WHY_DECENTRALIZED.md", #{title => "Why Decentralized"}},
{"docs/business/USE_CASES.md", #{title => "Use Cases"}},
{"docs/business/COMPARISON.md", #{title => "Technology Comparison"}},
{"docs/GLOSSARY.md", #{title => "Glossary"}},
%% Comparisons
{"docs/comparisons/README.md", #{title => "Comparisons"}},
{"docs/comparisons/VS_DISTRIBUTED_ERLANG.md", #{title => "vs Distributed Erlang"}},
%% User Guides
{"docs/user/QUICK_START.md", #{title => "Quick Start"}},
{"docs/user/HELLO_WORLD.md", #{title => "Hello World"}},
%% Developer Guides
{"docs/developer/DEVELOPMENT.md", #{title => "Development Guide"}},
{"docs/developer/RPC_GUIDE.md", #{title => "RPC Guide"}},
{"docs/developer/PUBSUB_GUIDE.md", #{title => "PubSub Guide"}},
%% Operator Guides
{"docs/operator/PERFORMANCE_GUIDE.md", #{title => "Performance Guide"}},
{"docs/operator/MONITORING_GUIDE.md", #{title => "Monitoring Guide"}},
{"docs/operator/TROUBLESHOOTING_GUIDE.md", #{title => "Troubleshooting"}},
{"docs/operator/MDNS_SETUP.md", #{title => "mDNS Setup (Optional)"}},
%% Deep-Dive Guides
{"docs/guides/DHT_GUIDE.md", #{title => "DHT Architecture"}},
{"docs/guides/NAT_TYPES_EXPLAINED.md", #{title => "NAT Types"}},
{"docs/guides/NAT_TRAVERSAL_DEVELOPER_GUIDE.md", #{title => "NAT Traversal"}},
{"docs/guides/AUTHORIZATION_GUIDE.md", #{title => "Authorization (UCAN/DID)"}},
%% Architecture Deep Dives
{"architecture/FULL_SUPERVISION_TREE.md", #{title => "Supervision Tree"}},
{"architecture/MACULA_PROJECT_STRUCTURE.md", #{title => "Project Structure"}},
{"architecture/INDEX.md", #{title => "Architecture Index"}},
%% Roadmap and Planning
{"architecture/ROADMAP.md", #{title => "Roadmap"}},
%% MRI System Guide
{"docs/guides/MRI_GUIDE.md", #{title => "MRI (Resource Identifiers)"}}
]},
{main, "overview"},
{source_url, "https://github.com/macula-io/macula"},
{assets, #{"assets" => "assets"}},
{logo, "artwork/logo.svg"},
{prefix_ref_vsn_with_v, false}
]}.
%% Hex package configuration
{hex, [
{doc, #{provider => ex_doc}},
{licenses, ["Apache-2.0"]},
{links, #{
<<"GitHub">> => <<"https://github.com/macula-io/macula">>,
<<"Documentation">> => <<"https://hexdocs.pm/macula">>,
<<"Changelog">> => <<"https://github.com/macula-io/macula/blob/main/CHANGELOG.md">>
}},
{description, "HTTP/3 mesh networking platform with NAT traversal (hole-punch, relay), Pub/Sub, async RPC, Kademlia DHT, hierarchical Bridge mesh for fractal network topology"},
{files, [
"src",
"include",
"rebar.config",
"rebar.lock",
"README.md",
"CHANGELOG.md",
"LICENSE",
"assets",
"artwork",
"docs",
"architecture"
]}
]}.