Packages

macula

0.48.6
7.1.0 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_peer_system",
"src/macula_pubsub_system",
"src/macula_rpc_system",
"src/macula_routing_system",
"src/macula_membership_system",
"src/macula_platform_system"
]}.
{pre_hooks, [
{compile, "sh -c 'B=\"${REBAR_DEPS_DIR}/macula\"; [ -f \"$B/priv/fetch-nif.sh\" ] || B=\".\"; sh \"$B/priv/fetch-nif.sh\" \"$B\"'"}
]}.
{deps, [
%% QUIC transport: Quinn via Rust NIF (replaces quicer/MsQuic)
%% Built from native/macula_quic/ via cargo pre_hooks above
%% 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_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"}},
{"CHANGELOG.md", #{title => "Changelog"}},
{"LICENSE", #{title => "License"}},
{"docs/GLOSSARY.md", #{title => "Glossary"}},
%% Feature Guides
{"docs/guides/PUBSUB_GUIDE.md", #{title => "PubSub Guide"}},
{"docs/guides/RPC_GUIDE.md", #{title => "RPC Guide"}},
{"docs/guides/DIST_OVER_MESH_GUIDE.md", #{title => "Distribution Over Mesh"}},
{"docs/guides/CLUSTERING_GUIDE.md", #{title => "Clustering"}},
{"docs/guides/CONTENT_TRANSFER_GUIDE.md", #{title => "Content Transfer"}},
{"docs/guides/DHT_GUIDE.md", #{title => "DHT Architecture"}},
{"docs/guides/AUTHORIZATION_GUIDE.md", #{title => "Authorization (UCAN/DID)"}},
{"docs/guides/PROTOCOL_GATEKEEPER_GUIDE.md", #{title => "Protocol Gatekeeper"}},
{"docs/guides/MRI_GUIDE.md", #{title => "MRI (Resource Identifiers)"}},
{"docs/guides/DEVELOPMENT.md", #{title => "Development 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/TLS_GUIDE.md", #{title => "TLS Setup"}},
{"docs/operator/MDNS_SETUP.md", #{title => "mDNS Setup (Optional)"}},
%% Architecture
{"docs/guides/FULL_SUPERVISION_TREE.md", #{title => "Supervision Tree"}},
{"docs/ROADMAP.md", #{title => "Roadmap"}}
]},
{main, "readme"},
{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 federated relay mesh, Pub/Sub, async RPC, Kademlia DHT, hierarchical Bridge mesh for fractal network topology"},
{files, [
"src",
"include",
"priv",
"rebar.config",
"README.md",
"CHANGELOG.md",
"LICENSE",
"assets",
"artwork",
"docs",
"architecture"
]}
]}.