All Classes and Interfaces

Class
Description
Skeleton handler that arms (encrypt) outbound and disarms (decrypt) inbound messages.
Acknowledges a HelloMessage.
 
Signals that a direct routing path has been discovered to PathEvent.getAddress() and that this peer is registered at us as a children.
Signals that a direct routing path has been discovered to PathEvent.getAddress() and that we are registered as a children as this peer.
Signals that a direct routing path has been discovered to PathEvent.getAddress().
This object represents a session key agreement between two nodes.
This class represents an identifier for an Agreement between to nodes.
Utility to colorize and style Strings with ANSI escape sequences.
 
Describes a message sent by an application running on drasyl.
This codec converts ApplicationMessages to the embedded payload and vice versa.
Describes a protocol message whose contents has been armed by using authenticated encryption with associated data.
 
 
 
Utility class for operations on arrays.
The behavior of an node defines how it reacts to the events that it receives.
Immutable builder for creating Behavior by chaining event handlers.
Describes a DrasylNode as a finite state machine.
Factories for Behavior.
 
Signifies that a public API (public class, method or field) is subject to incompatible changes, or even removal, in a future release.
A bloom filter is a probabilistic data structure that can quickly and efficiently check whether an element is included in a set.
 
This Serializer (de)serializes Boolean objects.
This Serializer (de)serializes byte arrays (just returns the byte array unchanged/uncopied).
This Serializer (de)serializes Byte objects.
Encodes ByteBufs to AbstractGoBackNArqDatas and vice versa.
This codec converts ByteBufs to RemoteMessages an vice versa.
Encodes ByteBufs to StopAndWaitArqDatas and vice versa.
Utility class for operations on bytes.
Signals that the path to the remote peer has been changed from direct to relayed or vice versa.
This Serializer (de)serializes Character objects.
Wraps each chunk of the specified io.netty.handler.stream.ChunkedInput<io.netty.buffer.ByteBuf> into a series of sortable MessageChunks, allowing the receiver to reassemble the ByteBuf in correct order.
This class wraps an object of type T and serves as a write many read many memory.
A special BloomFilter that allows you to remove elements.
Util class that provides cryptography functions for drasyl.
A CryptoException is thrown by Crypto when errors occur.
This class is responsible for storing the groups plugin options.
 
This exception signals an error occurred during execution in DatabaseAdapter implementations.
 
This handler denies any (de)serialization and can be used to disable existing serializers.
Helper class for resolving hostnames to IP addresses.
This Serializer (de)serializes Double objects.
Models the address to a peer in the overlay.
A virtual Channel for peer communication.
This class represents the configuration for a DrasylNode.
 
An Exception which is thrown by DrasylConfig.
All checked exceptions in drasyl inherit from this exception class.
Represents a node in the drasyl Overlay Network.
Initialize child DrasylChannels used by DrasylNode.
Initialize the DrasylServerChannel used by DrasylNode.
Holds parent and child EventLoops that are shared across all DrasylNodes.
This interface is implemented by all drasyl plugins.
A virtual ServerChannel used for overlay network management.
This class loads and binds the JNA Sodium.
Simple wrapper class that make native class easier.
This class can be used to filter equal events for a given peer (identifies by PathEvent.getAddress()).
Utility class for operations on Durations.
Describes an Event that provides the application with information about the local node, other peers, connections or incoming messages.
A Queue that evicts head elements to ensure that the queue will not exceed its capacity when new elements are enqueued.
A Map that expires entries based on oldest age (when maximum size has been exceeded), write time, or last access time.
A Set that expires elements based on oldest age (when maximum size has been exceeded) or write
This Serializer (de)serializes Float objects.
Describes a message whose content has been read completely.
A future combiner monitors the outcome of a number of discrete futures, then notifies a final, aggregate future when all of the combined futures are finished.
Utility class for future-related operations.
Ack message of the Go-Back-N ARQ protocol.
Encodes GoBackNArqMessages to ByteBufs and vice versa.
Data message of the Go-Back-N ARQ protocol.
First data message of the Go-Back-N ARQ protocol.
Performs the Go-Back-N ARQ protocol.
Last data message of the Go-Back-N ARQ protocol.
Message of the Go-Back-N ARQ protocol.
Rst message of the Go-Back-N ARQ protocol.
A simple POJO that models a group.
Class is used to model the state of a group.
An event that is related to a Group.
An event that signals that this node has successfully joined a group.
An event that signals, that a joining a specific group has failed.
This message is sent by the groups server to the client when the join to a group was not successful.
Specifies the reason of the GroupJoinFailedMessage.
This message is send by the groups client to the server to join a group.
This message is send by the groups client to the server to leave a group.
An event that signals that this node has left a group.
An event that signals that a new member joined a group.
An event that signals that a member has left a group.
This class represents the configuration for the GroupsClientPlugin.
Implements the builder-pattern for this configuration.
 
This message is send by the groups client to the server.
Decodes ByteBufs to GroupsClientMessages.
Encodes GroupsClientMessages to ByteBufs.
The Groups Membership Client Plugin allows drasyl nodes to connect to membership managers at startup to join groups.
This class starts a HTTP server with a REST API to manage groups and memberships.
This class represents the configuration for the GroupsManagerPlugin.
Implements the builder-pattern for this configuration.
 
Starting point for the groups master plugin.
Default class for all messages of the groups plugin.
This message is send by the groups server to the client.
Encodes GroupsServerMessages to ByteBufs.
This class models the connection/join setting of a group.
This message is sent by the groups server to the client when the join to a group was successful.
Util class that provides hashing functions for drasyl.
Hash table based implementation of the SetMultimap interface.
Describes a message that is used to announce this node to peers or to join a super node.
Util class that provides hexadecimal functions for drasyl.
This is an immutable object.
Represents the private identity of a peer (includes the proof of work, the public and private key).
Class to read/write a Identity from/to a file.
Utility class for writing an Identity to a Path and vice versa.
This class models an ed25519 public key that is used as node's unique overlay address.
This class models a ed25519 private key.
Closes inactive channels (to free up memory).
Immutable byte array implementation, that do not allow any modifications to the original input.
This event signals that the node was unable to process an inbound message.
A message that wraps another message with an InetSocketAddress.
Utility class for operations on InetAddresss.
Utility class for operations on URLs.
Class that provides utils for InputStreams.
This Serializer (de)serializes Integer objects.
Joins one or multiple super peer(s) as a children.
Operates as a super peer allowing other nodes to join as children.
Represents a pool of unique objects of type T.
Uses shared memory to discover other drasyl nodes running on same JVM.
This exception is thrown when reading a RemoteMessage fails due to an invalid format.
This handler filters out all messages received with invalid proof of work.
Signals that a message was received with an invalid ProofOfWork and was dropped.
This codec converts with Jackson messages of type T to ByteBufs and vice versa.
A serializer based on the Jackson Library for converting java objects to and from JSON.
This Serializer (de)serializes Serializable objects.
DatabaseAdapter implementation that supports SQL databases.
Logger factory which creates a java.util.logging logger.
Holder for the JSON serializer and JSON deserializer.
 
This class models a curve25519 public key that is used for x25519 key exchange.
This class models a curve25519 private key that is used for x25519 key exchange.
 
KeyPair<P extends PublicKey,S extends SecretKey>
This class is a simple holder for a key pair (a IdentityPublicKey and a IdentitySecretKey).
Encodes ByteBufs exceeding LargeByteBufToChunkedMessageEncoder.maxChunkLength to ChunkedMessageInputs.
Represents the very last chunk of a message that is too large to be transmitted as a whole.
Helper class to load the libsodium library from the preferred location.
Uses the file system to discover other drasyl nodes running on the local computer.
 
This handler, along with the UdpMulticastServer or UdpBroadcastServer, is used to discover other nodes on the local network via IP multicast or broadcast.
 
Provides loggers.
Utility class for logging-related operations.
Defines the set of logging levels.
This Serializer (de)serializes Long objects.
Arms (encrypt) outbound and disarms (decrypt) inbound messages.
This event signals, that currently all messages from and to the #peer are only encrypted with a long time key.
This exception is thrown when reading a RemoteMessage fails due to a mismatched magic number (expected magic number: RemoteMessage.MAGIC_NUMBER).
Represents a confidential string (like a password or a secret token) whose content is masked in MaskedString.toString().
A decoder that splits received ByteBufs into frames not larger then MaxLengthFrameDecoder.maxFrameLength.
An encoder that splits received ByteBufs into frames not larger then MaxLengthFrameEncoder.maxFrameLength.
Class is used to model the state of a member.
This message is sent by the groups server to the client when a new member has joined a group.
This message is sent by the groups server to the client when a member has left a group.
Class is used to model the state of a group member.
Represents a chunk of a message that is too large to be transmitted as a whole.
Decodes ByteBufs with correct magic number to MessageChunks.
Encodes MessageChunks to ByteBufs.
Buffers until all MessageChunks belonging to the same message have been collected, then passes them in the correct order.
Special List implementation which is used within our MessageChunksBuffer.
This event signals that the node has received a message addressed to it.
This handler serializes messages to ByteBuf and vice versa.
Helper class to visualize the number of inbound and outbound messages per second.
A map in which more than one value may be associated with and returned for a given key
This class contains methods for MurmurHash3 generation.
This class helps to load native libraries, used with JNA.
Port Forwarding on NAT-enabled routers via NAT-PMP.
Utility class for NAT Port Mapping Protocol (NAT-PMP)-related stuff.
 
 
 
 
Utility class for network-related operations.
Used by Event to describe an event related to the local Node (e.g.
This event signals that the node is shut down.
Events that refer to a Node.
This events signals that the node has terminated normally.
This event signals that the node is currently not connected to a super peer.
This event signals that the node is currently connected to a super peer.
This events signals that the node encountered an unrecoverable error.
This event signals that the node has been started.
A RemoteMessage is uniquely identified by its Nonce.NONCE_LENGTH bytes long nonce.
A common annotation to declare that annotated elements cannot be null.
As null values cannot be processed by a Channel, we need a special type representation this kind of messages.
A common annotation to declare that annotated elements can be null under some circumstance.
This Serializer (de)serializes null only.
Utility class for number-related operations.
Utility class that can be used to detect properties specific to the current runtime environment/operating system, such as os name.
This handler filters out all messages received from other networks.
Signals that a message was received from another network and was dropped.
Traffic shaping handler that limits the number of outgoing messages per second.
 
 
A message that wraps another message with a DrasylAddress.
A tuple of two elements.
Describes a message whose content has been read partially.
Classes implementing this interface signals that a direct routing path availability and/or the relation (children/super peer) to a peer has changed.
Signals that a new RTT measurement for a routing path has been performed to PathEvent.getAddress().
Utility class for operations on Pathes.
Port Forwarding on NAT-enabled routers via PCP.
Utility class for Port Control Protocol (PCP)-related stuff.
 
 
 
Used by Event to describe an event related to a Peer (e.g.
This event signals that the node has established a direct connection to a peer.
Represents an endpoint of a drasyl node.
Events that refer to a Peer.
This event signals that communication with this peer is only possible by relaying messages via a super peer.
This handler track received PathEvents and will contain an internal state of all peers, super peers, children, and available paths.
A ChannelHandler that tracks all PathEvents containing RTT information and generates some statistics that are periodically passed to the channel as an PeersRttHandler.PeersRttReport event.
 
 
This event signals, that currently all messages from and to the #peer are encrypted with an ephemeral session key.
Arms (encrypt) outbound and disarms (decrypt) inbound messages.
 
Utility class that can be used to detect properties specific to the current runtime environment, such as Java version and the availability of the sun.misc.Unsafe object.
Models environment information of a DrasylPlugin that are required by the plugin.
 
This handler tries to create a port forwarding for the UDP server using different methods (PCP, NAT-PMP, UPnP-IGD, etc.).
Represents a method for creating port forwarding (e.g., PCP, NAT-PMP, or UPnP-IGD).
Static convenience methods that help a method or constructor check whether it was invoked correctly (that is, whether its preconditions were met).
This class models the private header of a drasyl protocol message.
 
This class models the proof of work for a given public key.
This Serializer (de)serializes Message objects.
 
This class models the public header of a drasyl protocol message.
 
Utility class for receiving pseudorandom values.
This handler rate limits AcknowledgementMessage, HelloMessage, and UniteMessage messages addressed to us.
Represents a message that has been reassembled from MessageChunks.
Decodes ReassembledMessages to ByteBufs.
 
Describes a message that is sent to remote peers via UDP/TCP.
Signals that PathEvent.getAddress() is no longer registered at us as a children because the direct routing path to that peer is no longer available.
Signals that a direct routing path to PathEvent.getAddress() is no longer available.
Signals that we are no longer registered at as a children at PathEvent.getAddress() as the direct routing path to that peer is no longer available.
 
Utility class for security-related operations.
Holds a Map with all available Serializers and the classes each serializer should be used for.
This class models the serialized payload of a drasyl application message.
A Serializer represents a bimap between an object and an array of bytes representing that object.
This class contains some constants with the identifiers of default serializers.
Utility class for serial number arithmetic.
This class holds the current (long time/session | active/inactive/stale) Agreements between two nodes.
 
A Multimap in which the values associated with a key are treated as a Set.
Utility class for operations on Sets.
This Serializer (de)serializes Integer objects.
 
A simple wrapper for the given connection, that does not automatically close in a try-with-resources block.
SLF4J logger.
Logger factory which creates a SLF4J logger.
This class presents a restricted view to the native sodium library.
This handler uses preconfigured static routes to deliver messages.
ACK message of the Stop-and-wait ARQ protocol.
Encodes StopAndWaitArqMessages to ByteBufs and vice versa.
DATA message of the Stop-and-wait ARQ protocol.
Performs the Stop-and-wait ARQ protocol.
Message of the Stop-and-wait ARQ protocol.
This Serializer (de)serializes String objects.
Represents an IP range..
This handler monitors how long the node has not received a response from any super peer.
Starts a TCP-based server, allowing clients in very restrictive networks that do not allow UDP-based traffic to connect to this super peer via TCP.
Signals that the TcpServer was unable to bind to port.
Signals that the TcpServer is bind to TcpServer.TcpServerBound.getPort().
Send telemetry data (Neighbour list and, if desired, also the peers' ip addresses) to a given http endpoint.
Utility class for operations on Throwables.
BiConsumer that can throw checked Exceptions.
BiFunction that can throw checked Exceptions.
Consumer that can throw checked Exceptions.
Function that can throw checked Exceptions.
Runnable that can throw checked Exceptions.
Supplier that can throw checked Exceptions.
This class implements the token bucket algorithm as a leaky bucket.
Uses emitted PathEvents to build the node's current world view of the overlay network.
 
Extends InternetDiscoveryChildrenHandler by performing a rendezvous initiated by one of our super peers.
Extends InternetDiscoverySuperPeerHandler by performing a rendezvous on communication between two children peers.
A tuple of three elements.
Adapted from netty TypeParameterMatcher
This class is used for obtaining full generics type information by sub-classing.
Starts an UDP broadcast server and together with the LocalNetworkDiscovery is responsible for discovering other nodes in the local network.
Starts an UDP server which joins a IP multicast group and together with the LocalNetworkDiscovery is responsible for discovering other nodes in the local network.
Binds to an udp port, sends outgoing messages via udp, and sends received udp packets to the Channel.
Signals that the UdpServer was unable to bind to given address.
Decodes UnarmedProtocolMessages to FullReadMessages.
Describes an unencrypted protocol message whose only public header has been read so far.
Re-uses address from messages with unconfirmed peers as last-resort.
This message is sent by a super node for NAT traversal.
This handler fails and drops all outbound OverlayAddressedMessages.
This class represents an unsigned short in a rang of [0, 256).
This class represents an unsigned integer in a rang of [0, 2^32)
This class represents an unsigned integer in a rang of [0, 2^24)
This class represents an unsigned short in a rang of [0, 2^16)
Port Forwarding on NAT-enabled routers via UPnP-IGD.
Utility class for Universal Plug and Play (UPnP) Internet Gateway Device-related stuff.
 
 
 
 
 
 
 
Utility class for operations on URIs.
Utility class for operations on URLs.
A EmbeddedChannel that record all received user events.
 
Utility class for operations on websocket URIs (e.g.
This class does model a sliding window in the Go-Back-N ARQ protocol.
 
This class wraps an object of type T and serves as a write once read many (worm) memory.