Packages

macula

0.11.3
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_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.10.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/COMPARISON.md", #{title => "Technology Comparison"}},
{"docs/GLOSSARY.md", #{title => "Glossary"}},
%% 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/archive/planning-2025-11/PLATFORM_VISION.md", #{title => "Platform Vision (Archived)"}},
{"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"}},
%% Version History (archived docs in architecture/archive/planning-2025-11/)
{"architecture/v0.8.0-OVERVIEW.md", #{title => "v0.8.0 Overview"}},
{"architecture/v0.8.0-CHANGELOG.md", #{title => "v0.8.0 Changelog"}},
%% Migration
{"architecture/MIGRATION_V0.8.4_TO_V0.8.5.md", #{title => "Migration Guide v0.8.5"}},
{"TODO.md", #{title => "Known Issues"}}
]},
{main, "readme"},
{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 Pub/Sub, RPC, and Kademlia DHT featuring Platform Layer with Raft-based distributed coordination, CRDT support (LWW-Register), and comprehensive test coverage"},
{files, [
"src",
"include",
"rebar.config",
"rebar.lock",
"README.md",
"CHANGELOG.md",
"TODO.md",
"LICENSE",
"artwork",
"docs",
"architecture"
]}
]}.