All Classes and Interfaces
Class
Description
Abstract base class for
BabelChannelBuilder implementations.Abstract base implementation of
BabelProtocolHolder providing handler discovery
via reflection, dynamic lambda generation, and dispatch routines.Base builder for channel implementations operating over IP networks.
Babel 2 channel implementation that transports messages over persistent TCP
connections.
Modes used to describe which types of signed messages are allowed on the
channel.
Envelope holding a deserialized
BabelMessage alongside the sender node identity and physical source address.Generic serializer for object arrays of type
T[].Binary serializer for Netty
AsciiString instances.ProtocolEvent emitted by a
MembershipConsumerBabelProtocol when it wants to retrieve the
current neighbour set from the membership provider.The
Babel class serves as the central orchestration engine for the
Babel 2 runtime.Builder class for configuring and creating a
Babel runtime instance.Represents a communication channel between two Babel runtimes.
Factory interface for creating
BabelChannel instances during runtime
initialisation.Root sealed interface for all events processed by the Babel runtime.
Annotation that marks a Java
record as a Babel IP network message and assigns it a
unique integer identifier used during serialization and deserialization.Shared utility constants and helper methods used by the Babel 2 IP channel
implementations.
Marker interface for all protocol-level messages exchanged between
BabelNode instances through a BabelChannel.General serializer for
BabelMessage instances.Serializer contract for Babel IP network messages.
Low-level binary serializer contract for objects that need to be written to
or read from a
Netty
ByteBuf.Opaque handle that represents a remote Babel process reachable through a
BabelChannel.Interface representing a response to a Babel node probe.
Discovery message sent in response to a probe, announcing active channels and addresses of the node.
Represents a component attached to a
BabelNode.SPI serializer interface for specific
BabelNodeComponent implementations.Event emitted to probe a Babel node.
Multicast probe message querying the local network for contact information of a target node.
SPI serializer interface for specific
BabelNode implementations.Utility class for loading Babel protocol configuration from a properties file
and/or command-line arguments.
Defines the lifecycle and configuration requirements for a protocol
within the Babel framework.
Factory interface for creating
BabelProtocol instances from a
Properties configuration object.Wraps a
BabelProtocol and manages its execution environment, event delivery,
and dispatching of messages and events.Factory interface for creating instances of
BabelProtocolHolder.Factory helper for constructing
QuicSslContext (for QUIC) and Netty SslContext
(for TLS over TCP) using the Babel 2 self-signed peer identity certificate flow.Serializer and verifier for
SignedBabelMessage instances wrapping a message of type T.Binary serializer for
boolean[] primitive arrays.Binary serializer for
Boolean values.Marker interface for protocols that consume a broadcast service.
ProtocolExtension that wires up broadcast-delivery handling for
BroadcastConsumerBabelProtocol instances.ProtocolExtensionFactory that creates BroadcastConsumerExtension
instances for BroadcastConsumerBabelProtocol implementations.ProtocolEvent emitted by a
BroadcastProviderBabelProtocol when a broadcast message has been received and
is ready to be delivered to local consumer protocols.Functional interface invoked when a broadcast message is delivered to a
BroadcastConsumerBabelProtocol.Channel interface for IP channels supporting local network broadcast or multicast operations.
Interface for protocols that implement a broadcast service.
ProtocolExtension that routes BroadcastRequest events from
consumer protocols to the associated BroadcastProviderBabelProtocol.ProtocolExtensionFactory that creates BroadcastProviderExtension
instances for BroadcastProviderBabelProtocol implementations.ProtocolEvent emitted by a
BroadcastConsumerBabelProtocol when it wishes to broadcast a message to all
overlay members.Binary serializer for
byte[] arrays.Binary serializer for
Byte values.Generator for ephemeral X.509 certificates carrying a long-term peer identity extension.
Key material containing the ephemeral private key, the generated self-signed certificate,
and the long-term identity public key.
Record holding information about an active channel type and its bound socket address.
Network serializer for
ChannelInfo records.Binary serializer for
Character values.Binary serializer for UTF-8 encoded
CharSequence instances.A
BabelChannel that composes many underlying channels.NetworkEvent delivered to a protocol when a previously established
connection to node has been closed.NetworkEvent delivered to a protocol when an outgoing connection
attempt to node failed before the connection could be established.NetworkEvent delivered to a protocol when an outgoing connection to
node has been successfully established on the protocol's channel.Interface representing legacy control and handshake messages exchanged over legacy channels.
Cryptographic utility methods used by the Babel framework for node key generation
and identity management.
A
BabelProtocolHolder implementation that runs the protocol on a dedicated,
single-threaded executor using a lock-free MpscArrayQueue.Factory for creating
DedicatedExecutorProtocolHolder instances.Default implementation of
NodeStore using concurrent collections.Message broadcast across local networks to announce a node's presence and supported protocol names.
Binary serializer for
double[] primitive arrays.Binary serializer for
Double values.Functional interface for handling a
ProtocolEvent.Initial handshake message sent by a legacy simple client containing its client magic number.
Binary serializer for
float[] primitive arrays.Binary serializer for
Float values.Extended serializer for
SignedBabelMessage instances capable of both signing
outgoing messages and forwarding already-signed messages.General serializer for polymorphic
BabelNodeComponent instances.General serializer for polymorphic
BabelNode instances.Immutable record exchanged as the very first message on a newly established TCP or QUIC
connection to identify both endpoints to each other.
Periodic heartbeat message exchanged to maintain legacy connection liveness.
Serializer for
InetSocketAddress instances, supporting both IPv4 (4 bytes)
and IPv6 (16 bytes) addresses along with a 4-byte port number.Binary serializer for
int[] primitive arrays.Binary serializer for
Integer values.An in-process (in-JVM) implementation of
BabelChannel intended for
testing and single-process multi-protocol scenarios.BabelChannelBuilder that creates (and caches) a single
InternalBabelChannel instance.Internal component representing a node's participation in an internal channel.
Control message signaling that invalid or unrecognized attributes were received in a legacy handshake.
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.
Binary serializer for
BabelNode instances that carry an IP socket address.A
BabelNode identity implementation based on an IP socket address and channel type.Singleton message sent periodically over QUIC connections to prevent the underlying QUIC
session from timing out due to inactivity.
Legacy server-side channel implementation supporting backward compatibility with older simple-client protocols.
Builder for constructing
LegacySimpleServerBabelChannel instances.Inbound handler managing active legacy simple server connections, reading application messages
and managing idle state heartbeat triggers.
Netty codec for encoding and decoding legacy control and handshake messages.
Netty inbound handler processing the initial legacy client handshake and registering connections.
Generic serializer for
List collections of type T.Protocol that discovers peer nodes on local networks using multicast/broadcast probes and answers.
Binary serializer for
long[] primitive arrays.Binary serializer for
Long values.Network serializer for Java
Map collections.Interface for protocols that consume a membership (overlay neighbour) service.
ProtocolExtension that delivers membership change events to
MembershipConsumerBabelProtocol instances.ProtocolExtensionFactory that creates MembershipConsumerExtension
instances for MembershipConsumerBabelProtocol implementations.Interface for protocols that implement a membership (overlay neighbour) service.
ProtocolExtension that routes AskNeighbourSet events from
consumer protocols to the associated MembershipProviderBabelProtocol.ProtocolExtensionFactory that creates MembershipProviderExtension
instances for MembershipProviderBabelProtocol implementations.Sealed interface representing the outcome of a message send or receive
operation on a
BabelChannel.MessageEvent delivered when a BabelMessage arrives from a
remote node.Functional interface for handling an inbound
BabelMessage.MessageEvent delivered when an attempt to send a BabelMessage
to a remote node failed.Functional interface invoked when an attempt to send an outbound
BabelMessage failed.MessageEvent delivered when a previously sent BabelMessage was
successfully handed off to the remote node.Functional interface invoked when an outbound
BabelMessage has been
successfully delivered to the remote node.Compile-time annotation processor that generates binary serializer classes
for every Java
record annotated with BabelIPMessage.Unchecked exception thrown when two distinct message types are registered with the same numeric
identifier in the
SerializerRegistry.ProtocolEvent emitted by a
MembershipProviderBabelProtocol when a neighbour has left or become
unreachable.ProtocolEvent carrying a snapshot of the current neighbour set, delivered
to a MembershipConsumerBabelProtocol in response to an
AskNeighbourSet request.ProtocolEvent emitted by a
MembershipProviderBabelProtocol when a new neighbour has joined the
overlay.Protocol holder implementation executing protocol event handlers on a Netty
EventLoopGroup.Factory for creating
NettyExecutorProtocolHolder instances backed by a Netty EventLoopGroup.Sealed interface representing connection lifecycle events generated by a
BabelChannel.Checked exception that signals a failure during the promotion of a newly established
connection to replace an existing one in the duplicate-connection resolution logic of the
TCP and QUIC Babel channels.
A central directory mapping identities (
BabelNode) to
transport-specific attributes (BabelNodeComponent).An
X509ExtendedTrustManager that validates peer certificates according to the
Babel 2 / libp2p TLS identity certificate pattern.TrustManagerFactory implementation that produces PeerIdentityTrustManager
instances for validating Babel 2 self-signed peer certificates.Marker interface for user-defined, application-level events exchanged between
protocols.
A pluggable cross-cutting extension that augments a
BabelProtocol
with
additional event handling capabilities.Factory interface for creating
ProtocolExtension instances.Canonical
Comparator for PublicKeyBabelNode instances based on the
lexicographical comparison of their encoded public key bytes.Network serializer for
PublicKeyBabelNode identities using ASN.1 SubjectPublicKeyInfo encoding.Babel 2 channel implementation that transports messages over QUIC streams
secured with mutual TLS.
Builder for
QUICBabelChannel instances.Factory for creating
ResolverProviderExtension instances.Interface for protocols that act as a resolver provider.
Extension for the
ResolverProviderBabelProtocol to handle node probe events.Handshake response message sent by a legacy simple server acknowledging connection setup.
Central registry that maps Java types and message IDs to their
BabelNetworkSerializer / BabelNetworkMessageSerializer
implementations.Network serializer for Java
Set collections.A
BabelProtocolHolder implementation that schedules event queue draining on a
shared thread pool executor.Factory for creating
SharedExecutorProtocolHolder instances that share a common
fixed thread pool executor.Binary serializer for
short[] primitive arrays.Binary serializer for
Short values.Wrapper for a
BabelMessage that optionally carries a cryptographic signature
and the identity of the sending node.Marker interface for protocols that receive and send cryptographically signed messages.
Protocol extension that enables reflective dispatching of signed messages to handler methods
annotated with
UponSignedMessageIn, UponSignedMessageOutSuccess, and
UponSignedMessageOutFailed.Factory for creating
SignedMessageExtension instances.Protocol event delivered when an inbound signed message arrives.
Protocol event delivered when an outbound signed message fails to be sent.
Protocol event delivered when an outbound signed message is successfully sent.
Network serializer for Java
SortedMap collections.Network serializer for Java
SortedSet collections.Special
BabelEvent delivered exactly once to each protocol when the
Babel runtime starts (i.e., when Babel.init() is called).Binary serializer for UTF-8 encoded
String values.Concrete TCP Babel channel implementation that transports messages over
persistent TCP connections.
Builder for
AbstractTCPBabelChannel instances.Netty codec that frames both standard (unsigned) and cryptographically signed Babel messages
over the same TCP connection.
Concrete TLS-over-TCP Babel channel implementation that transports messages
over
persistent TCP connections secured with mutual TLS.
Builder for
TLSBabelChannel instances.Babel 2 channel implementation that transports messages as connectionless UDP
datagrams.
Builder / factory for
UDPBabelChannel instances.Marks a method as a handler for a
ProtocolEvent.Marks a method as a handler for a broadcast-delivered message on a
BroadcastConsumerBabelProtocol.Marks a method as a handler for an inbound
BabelMessage.Marks a method as a handler invoked when an outbound
BabelMessage could
not be delivered.Marks a method as a handler invoked when an outbound
BabelMessage was
successfully delivered.Marks a method as a handler for an inbound cryptographically signed message.
Marks a method as a handler for failed transmission of an outbound signed message.
Marks a method as a handler for successful delivery of an outbound signed message.
Binary serializer for
UUID values, encoding each instance as two consecutive
8-byte big-endian longs (most-significant bits followed by least-significant bits),
for a total wire size of 16 bytes.