Module prelude

Source
Expand description

Convenience import for building applications

Re-exports§

pub use crate::backend_kv_store::BackendHandler;
pub use crate::prefabs::client::peer_connection::PeerConnectionSetupAggregator;
pub use crate::prefabs::client::PrefabFunctions;
pub use crate::prefabs::client::DefaultServerConnectionSettingsBuilder;
pub use crate::prefabs::client::ServerConnectionSettings;
pub use crate::prefabs::ClientServerRemote;
pub use crate::remote_ext::remote_specialization::PeerRemote;
pub use crate::responses;
pub use crate::remote_ext::*;

Structs§

AccountManager
The default manager for handling the list of users stored locally. It also allows for user creation, and is used especially for when creating a new user via the registration service.
ArgonDefaultServerSettings
CNACMetadata
For passing metadata from a cnac
CallbackReceiver
A receiver for the tracked callback channel.
CitadelNode
ConnectFail
ConnectSuccess
ConnectToHypernode
CryptoParameters
DeRegistration
DeleteObject
DeregisterFromHypernode
Disconnect
DisconnectFromHypernode
EncryptionAlgorithmIter
An iterator over the variants of EncryptionAlgorithm
ExplicitPanicFuture
Ensures that if a panic occurs in a task, the panic backtrace prints and halts the program
FcmKeys
GroupBroadcastCommand
GroupChannel
GroupChannelCreated
GroupChannelRecvHalf
GroupChannelSendHalf
GroupEvent
IfEq
InternalServerError
KemAlgorithmIter
An iterator over the variants of KemAlgorithm
KernelExecutor
Creates a KernelExecutor
KernelExecutorSettings
Used for fine-tuning parameters within the [KernelExecutor]
MailboxDelivery
MessageGroupKey
MessageGroupOptions
Options for creating message groups
MonoRatchet
A compact ratchet meant for protocols that require smaller payloads
MutualPeer
This is to replace a tuple for greater organization
NodeBuilder
Used to construct a running client/peer or server instance
NodeFuture
An awaitable future whose return value propagates any internal protocol or kernel-level errors
NodeRemote
allows convenient communication with the server
ObjectId
ObjectTransferHandle
ObjectTransferHandler
ObjectTransferHandlerInner
Used to keep track of file transfer progress for either sender or receiver orientation
OutboundRequestRejected
OutboundUdpSender
PeerChannel
PeerChannelCreated
PeerChannelRecvHalf
A stream interface for receiving secure packets NOTE: on drop, if this is used for a P2P connection, disconnection will occur
PeerChannelSendHalf
PeerCommand
PeerEvent
PeerInfo
Contains info about a peer, used for giving the user access to usernames and names of peers
PersistenceHandler
This is what every C/NAC gets. This gets called before making I/O operations
PreSharedKey
PullObject
ReKey
ReKeyResult
ReVFSResult
RegisterFailure
RegisterOkay
RegisterToHypernode
RtdbConfig
For use in the TOML config as well as for during the Post-login phase
SecBuffer
A memory-secure wrapper for shipping around Bytes
SecrecyModeIter
An iterator over the variants of SecrecyMode
SecureBufMutHandle
SecurityLevelIter
An iterator over the variants of SecurityLevel
SendObject
ServerMiscSettings
Miscellaneous settings for a node serving connections
ServerOnlySessionInitSettings
ServicesConfig
ServicesObject
Passed to the services handler post-login at the server. Intended to be passed to the client afterwards
SessionList
SessionSecuritySettings
SessionSecuritySettingsBuilder
SigAlgorithmIter
An iterator over the variants of SigAlgorithm
StackedRatchet
A container meant to establish perfect forward secrecy AND scrambling w/ an independent key This is meant for messages, not file transfer. File transfers should use a single key throughout the entire file
SymmetricIdentifierHandle
A convenience structure for executing commands that depend on a specific registered user
SymmetricIdentifierHandleRef
A reference to a user identifier
Ticket
A type sent through the server when a request is made
TrackedCallbackChannel
A tracked callback channel that provides request-response tracking and monitoring.
TrackedCallbackChannelPayload
A payload for the tracked callback channel.
UdpChannel
UdpModeIter
An iterator over the variants of UdpMode
VirtualObjectMetadata
WebRTCCompatChannel

Enums§

AuthenticationRequest
Arguments for connecting to a node
BackendType
Used when constructing the account manager
ConnectMode
If force_login is true, the protocol will disconnect any previously existent sessions in the session manager attributed to the account logging-in (so long as login succeeds) The default is a Standard login that will with force_login set to false
ConnectProtocol
For saving the state of client-side connections
EncryptionAlgorithm
GenericNetworkStream
GroupBroadcast
Enum representing different types of group broadcast messages
GroupBroadcastPayload
GroupMemberAlterMode
GroupType
HeaderObfuscatorSettings
KemAlgorithm
MemberState
NetworkError
The basic error type for this crate
NodeConnectionType
NodeRequest
These are sent down the stack into the server. Most of the requests expect a ticket ID in order for processes sitting above the [Kernel] to know how the request went
NodeResult
This type is for relaying results between the lower-level protocol and the higher-level kernel
NodeType
Used for determining the proper action when loading the server
ObjectTransferOrientation
ObjectTransferStatus
PeerConnectionType
PeerResponse
PeerSignal
ProposedCredentials
When creating credentials, this is required
ReKeyReturnType
SecrecyMode
SecurityLevel
Provides the enumeration for all security levels
ServerUnderlyingProtocol
SigAlgorithm
TrackedCallbackError
An error that can occur when using the tracked callback channel.
TransferType
UdpMode
UserIdentifier
A convenience wrapper for passing arguments to functions that require searches for a user

Constants§

AES_GCM_NONCE_LENGTH_BYTES
ASCON_NONCE_LENGTH_BYTES
CHA_CHA_NONCE_LENGTH_BYTES
KEM_ALGORITHM_COUNT
KYBER_NONCE_LENGTH_BYTES
LARGEST_NONCE_LEN

Traits§

AlgorithmsExt
IfEqConditional
IfTrueConditional
NetKernel
The NetKernel is the thread-safe interface between the single-threaded OR multi-threaded async protocol and your network application
ObjectSource
PairMap
Ratchet
For allowing registration inside the toolset
Remote
RuntimeFuture
SyncIO
Convenient serialization methods for types that #[derive(Serialize, Deserialize)]
TargetLockedRemote
Then

Functions§

add_inner
calculate_optimal_argon_params
Uses: https://www.ory.sh/choose-recommended-argon2-parameters-password-hashing/ “To reach the desired execution time, you can tweak two variables. It is recommended to start with the highest amount of memory possible and one iteration. Reduce the memory until one hashing operation takes less than your desired duration. Next, advance the number of iterations to approach the desired execution time as close as possible”
prepare_virtual_path
read_one_packet_as_framed
username_to_cid
Generates a CID given a username
validate_virtual_path
write_one_packet

Type Aliases§

DefaultNodeBuilder
Default node builder type
LightweightNodeBuilder
VirtualTargetType
For readability

Attribute Macros§

async_trait