ouisync library

Classes

AccessChange
How to change access to a repository.
AccessChangeDisable
Disable access
AccessChangeEnable
Enable read or write access, optionally with local secret
DirectoryEntry
File
FileHandle
LocalSecret
Type of secret to unlock a repository.
LocalSecretPassword
Password provided by the user
LocalSecretSecretKey
Secret key generated by secure means (e.g., crypto-secure RNG, KDF, ...)
MessageId
MetadataEdit
Edit of a single metadata entry.
MonitorId
NetworkDefaults
Default network parameters
Password
A simple wrapper over String to avoid certain kinds of attack. For more elaboration please see the documentation for the SecretKey structure.
PasswordSalt
PeerInfo
Information about a peer.
PeerState
PeerStateActive
PeerStateConnecting
PeerStateHandshaking
PeerStateKnown
Progress
Progress of a task.
PublicRuntimeId
QuotaInfo
Repository
RepositoryHandle
RequestFileClose
RequestFileFlush
RequestFileGetLength
RequestFileGetProgress
RequestFileRead
RequestFileTruncate
RequestFileWrite
RequestRepositoryClose
RequestRepositoryCreateDirectory
RequestRepositoryCreateFile
RequestRepositoryCreateMirror
RequestRepositoryDelete
RequestRepositoryDeleteMirror
RequestRepositoryExport
RequestRepositoryFileExists
RequestRepositoryGetAccessMode
RequestRepositoryGetBlockExpiration
RequestRepositoryGetCredentials
RequestRepositoryGetEntryType
RequestRepositoryGetExpiration
RequestRepositoryGetInfoHash
RequestRepositoryGetMetadata
RequestRepositoryGetMountPoint
RequestRepositoryGetPath
RequestRepositoryGetQuota
RequestRepositoryGetShortName
RequestRepositoryGetStats
RequestRepositoryGetSyncProgress
RequestRepositoryIsDhtEnabled
RequestRepositoryIsPexEnabled
RequestRepositoryIsSyncEnabled
RequestRepositoryMirrorExists
RequestRepositoryMount
RequestRepositoryMove
RequestRepositoryMoveEntry
RequestRepositoryOpenFile
RequestRepositoryReadDirectory
RequestRepositoryRemoveDirectory
RequestRepositoryRemoveFile
RequestRepositoryResetAccess
RequestRepositorySetAccess
RequestRepositorySetAccessMode
RequestRepositorySetBlockExpiration
RequestRepositorySetCredentials
RequestRepositorySetDhtEnabled
RequestRepositorySetExpiration
RequestRepositorySetMetadata
RequestRepositorySetPexEnabled
RequestRepositorySetQuota
RequestRepositorySetSyncEnabled
RequestRepositoryShare
RequestRepositorySubscribe
RequestRepositoryUnmount
RequestSessionAddUserProvidedPeers
RequestSessionBindMetrics
RequestSessionBindNetwork
RequestSessionBindRemoteControl
RequestSessionCreateRepository
RequestSessionDeleteRepositoryByName
RequestSessionDeriveSecretKey
RequestSessionFindRepository
RequestSessionGeneratePasswordSalt
RequestSessionGenerateSecretKey
RequestSessionGetCurrentProtocolVersion
RequestSessionGetDefaultBlockExpiration
RequestSessionGetDefaultQuota
RequestSessionGetDefaultRepositoryExpiration
RequestSessionGetExternalAddrV4
RequestSessionGetExternalAddrV6
RequestSessionGetHighestSeenProtocolVersion
RequestSessionGetLocalListenerAddrs
RequestSessionGetMetricsListenerAddr
RequestSessionGetMountRoot
RequestSessionGetNatBehavior
RequestSessionGetNetworkStats
RequestSessionGetPeers
RequestSessionGetRemoteControlListenerAddr
RequestSessionGetRemoteListenerAddrs
RequestSessionGetRuntimeId
RequestSessionGetShareTokenAccessMode
RequestSessionGetShareTokenInfoHash
RequestSessionGetShareTokenSuggestedName
RequestSessionGetStateMonitor
RequestSessionGetStoreDir
RequestSessionGetUserProvidedPeers
RequestSessionInitNetwork
RequestSessionIsLocalDiscoveryEnabled
RequestSessionIsPexRecvEnabled
RequestSessionIsPexSendEnabled
RequestSessionIsPortForwardingEnabled
RequestSessionListRepositories
RequestSessionMirrorExists
RequestSessionOpenRepository
RequestSessionRemoveUserProvidedPeers
RequestSessionSetDefaultBlockExpiration
RequestSessionSetDefaultQuota
RequestSessionSetDefaultRepositoryExpiration
RequestSessionSetLocalDiscoveryEnabled
RequestSessionSetMountRoot
RequestSessionSetPexRecvEnabled
RequestSessionSetPexSendEnabled
RequestSessionSetPortForwardingEnabled
RequestSessionSetStoreDir
RequestSessionSubscribeToNetwork
RequestSessionSubscribeToStateMonitor
RequestSessionUnsubscribe
RequestSessionValidateShareToken
ResponseAccessMode
ResponseBool
ResponseBytes
ResponseDirectoryEntries
ResponseDuration
ResponseEntryType
ResponseFile
ResponseNatBehavior
ResponseNetworkEvent
ResponseNone
ResponsePasswordSalt
ResponsePath
ResponsePeerAddrs
ResponsePeerInfos
ResponseProgress
ResponsePublicRuntimeId
ResponseQuotaInfo
ResponseRepositories
ResponseRepository
ResponseRepositoryEvent
ResponseSecretKey
ResponseShareToken
ResponseSocketAddr
ResponseStateMonitor
ResponseStateMonitorEvent
ResponseStats
ResponseStorageSize
ResponseString
ResponseU16
ResponseU64
SecretKey
Symmetric encryption/decryption secret key.
Server
Handle to a Ouisync service.
Session
SetLocalSecret
Used to set or change the read or write local secret of a repository.
SetLocalSecretKeyAndSalt
Use to directly (without doing password hashing) set the SecretKey and PasswordSalt for read or write access.
SetLocalSecretPassword
Password provided by the user
ShareToken
Token to share a repository. It can be encoded as a URL-formatted string and transmitted to other replicas.
StateMonitor
StateMonitorNode
Stats
Network traffic statistics.
StorageSize
Strongly typed storage size.

Enums

AccessMode
Access mode of a repository.
EntryType
Type of filesystem entry.
ErrorCode
LogLevel
NatBehavior
NetworkEvent
Network notification event.
PeerSource
How was the peer discovered.

Extensions

RepositoryExtension on Repository
SetLocalSecretExtension on SetLocalSecret

Exceptions / Errors

AlreadyExists
Entry already exists
Ambiguous
Multiple matching entries found
ConfigError
Failed to read from or write into the config file
ConnectionAborted
Connection aborted by the server
ConnectionRefused
Failed to establish connection to the server
DecodeError
DirectoryNotEmpty
Directory was expected to be empty but it isn't
Interrupted
The operation was interrupted
InvalidData
Invalid data (e.g., malformed incoming message, config file, etc...)
InvalidInput
Invalid input parameter
IsDirectory
Entry was expected to not be a directory but it is
ListenerAcceptError
Listener failed to accept client connection
ListenerBindError
Listener failed to bind to the specified address
MountDirUnspecified
Mount directory is not specified
NotDirectory
Entry was expected to be a directory but it isn't
NotFound
Entry not found
OuisyncException
PermissionDenied
Insuficient permission to perform the intended operation
ResourceBusy
File or directory is busy
RuntimeInitializeError
Failed to initialize runtime
ServiceAlreadyRunning
Another instance of the service is already running
StoreDirUnspecified
Store directory is not specified
StoreError
Operation on the internal repository store failed
TlsCertificatesInvalid
TLS certificates failed to load
TlsCertificatesNotFound
TLS certificated not found
TlsConfigError
Failed to create TLS config
TlsKeysNotFound
TLS keys not found
TransportError
Failed to send or receive message
UnexpectedResponse
Unsupported
The indended operation is not supported
VfsDriverInstallError
Failed to install virtual filesystem driver
VfsOtherError
Unspecified virtual filesystem error