Packages
macula
0.12.6
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
Current section
Files
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_dist_system",
"src/macula_gateway_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"},
%% Raft consensus for distributed coordination
{ra, "2.17.1"}
%% JSON encoding: Using built-in json module (OTP 27+)
]}.
{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_dist_system"},
{dir, "test/macula_gateway_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.12.5"}, [
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"}},
%% 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"}},
%% 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"}},
{"TODO.md", #{title => "Known Issues"}}
]},
{main, "overview"},
{source_url, "https://github.com/macula-io/macula"},
{assets, #{"artwork" => "assets"}},
{logo, "artwork/macula-alt-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 with delivery metrics, async RPC, Kademlia DHT, Platform Layer (Raft consensus, LWW-Register CRDT)"},
{files, [
"src",
"include",
"rebar.config",
"rebar.lock",
"README.md",
"CHANGELOG.md",
"TODO.md",
"LICENSE",
"artwork",
"docs",
"architecture"
]}
]}.