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.
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.
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.
Interface for protocols that implement a membership (overlay neighbour) service.
ProtocolExtension that routes AskNeighbourSet events from consumer protocols to the associated MembershipProviderBabelProtocol.
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.
A default implementation of a BabelNode, identified by a PublicKey.
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.