macula_protocol_types (macula v0.20.5)
View SourceProtocol message type definitions and constants for Macula mesh. Defines all message types that can be sent over QUIC streams.
Summary
Types
-type content_want_msg() :: #{request_id := binary(), wants := [#{mcid := binary(), priority => 1..255}], max_blocks => pos_integer(), from_node := binary()}.
-type message() :: {connect, connect_msg()} | {disconnect, disconnect_msg()} | {ping, ping_msg()} | {pong, pong_msg()} | {publish, publish_msg()} | {subscribe, subscribe_msg()} | {unsubscribe, unsubscribe_msg()} | {pubsub_route, pubsub_route_msg()} | {call, call_msg()} | {reply, reply_msg()} | {cast, cast_msg()} | {rpc_route, rpc_route_msg()}.
-type message_type() ::
connect | disconnect | ping | pong | publish | subscribe | unsubscribe | pubsub_route | call |
reply | cast | rpc_route | rpc_request | rpc_reply | swim_ping | swim_ack | swim_ping_req |
find_node | find_node_reply | store | find_value | find_value_reply | nat_probe |
nat_probe_reply | punch_request | punch_coordinate | punch_execute | punch_result |
relay_request | relay_data | bridge_rpc | bridge_data | gossip_push | gossip_pull |
gossip_pull_reply | gossip_sync | gossip_sync_reply | registry_publish |
registry_publish_ack | registry_fetch | registry_fetch_reply | registry_query |
registry_query_reply | registry_verify | registry_verify_reply | registry_sync |
registry_sync_reply | content_want | content_have | content_block | content_manifest_req |
content_manifest_res | content_cancel.
-type ping_msg() :: #{timestamp := integer()}.
-type unsubscribe_msg() :: #{topics := [binary()]}.
Functions
-spec message_type_id(message_type()) -> byte().
Get numeric ID for a message type.
-spec message_type_name(byte()) -> {ok, message_type()} | {error, unknown_type}.
Get message type name from numeric ID.