Package pt.unl.fct.di.novasys.babel2.channels
@NullMarked
package pt.unl.fct.di.novasys.babel2.channels
Channel abstractions, lifecycle builders, wire messages, and node components for Babel 2.
This package forms the transport abstraction layer of Babel 2, decoupling protocol logic from concrete network transports.
Key Concepts
- Channels:
BabelChannelis the base channel interface supporting unicast and ephemeral messaging.ComposedBabelChannelaggregates multiple concrete channels (such as TCP, UDP, and QUIC) into a single composite transport.IPBabelChannelspecializes channels operating over IP sockets. - Builders:
BabelChannelBuilder,AbstractBabelChannelBuilder, andAbstractIPBabelChannelBuilderprovide fluent configuration for channel parameters including binding addresses, event loops, and connection tolerances. - Messages:
BabelMessageis the foundational marker interface for all network messages. Application messages annotate records withBabelIPMessageto generate wire serializers.SignedBabelMessagewraps payloads with cryptographic signatures. - Node Components:
BabelNodeComponentandIPBabelNodeComponentrepresent transport-specific addressing attributes attached to abstract node identities. - Node Store:
NodeStoreandDefaultNodeStoremanage dynamic node resolution and component storage.
-
ClassDescriptionAbstractBabelChannelBuilder<T extends BabelChannelBuilder>Abstract base class for
BabelChannelBuilderimplementations.AbstractIPBabelChannelBuilder<T extends BabelChannelBuilder>Base builder for channel implementations operating over IP networks.Represents a communication channel between two Babel runtimes.Factory interface for creatingBabelChannelinstances during runtime initialisation.Annotation that marks a Javarecordas a Babel IP network message and assigns it a unique integer identifier used during serialization and deserialization.Marker interface for all protocol-level messages exchanged betweenBabelNodeinstances through aBabelChannel.Represents a component attached to aBabelNode.BasicSignedBabelMessageSerializer<T extends BabelMessage>Serializer and verifier forSignedBabelMessageinstances wrapping a message of typeT.ABabelChannelthat composes many underlying channels.Default implementation ofNodeStoreusing concurrent collections.FullSignedBabelMessageSerializer<T extends BabelMessage>Extended serializer forSignedBabelMessageinstances capable of both signing outgoing messages and forwarding already-signed messages.Interface representing a Babel channel operating over IP network protocols (TCP, TLS, UDP, QUIC).Immutable record that identifies a Babel node by its IP-level socket address.Compile-time annotation processor that generates binary serializer classes for every Javarecordannotated withBabelIPMessage.A central directory mapping identities (BabelNode) to transport-specific attributes (BabelNodeComponent).CanonicalComparatorforPublicKeyBabelNodeinstances based on the lexicographical comparison of their encoded public key bytes.SignedBabelMessage<T extends BabelMessage>Wrapper for aBabelMessagethat optionally carries a cryptographic signature and the identity of the sending node.