Skip to content

Sys

Raw FFI bindings for libdave - the C interface to Discord’s DAVE end-to-end encryption protocol.

This module loads libdave via stdPolyfills.ffi.dlopen and exposes the full C API as a typed Luau interface. It is a low-level binding layer; higher-level wrappers should be built on top of lib rather than consuming this module directly.

Sys.lib  :: Lib

The loaded libdave FFI library. All DAVE protocol functions are called through this handle.

Sys.structs  :: {
encryptorStats: FFIStructureType,
decryptorStats: FFIStructureType,
}
Sys.pointers  :: {
sessionHandle: FFIPointerType,
commitResultHandle: FFIPointerType,
welcomeResultHandle: FFIPointerType,
keyRatchetHandle: FFIPointerType,
encryptorHandle: FFIPointerType,
decryptorHandle: FFIPointerType,
}
Sys.codec  :: {
unknown: number,
opus: number,
vp8: number,
vp9: number,
h264: number,
h265: number,
av1: number,
}
Sys.mediaType  :: {
audio: number,
video: number,
}
Sys.encryptorResultCode  :: {
success: number,
encryptionFailure: number,
missingKeyRatchet: number,
missingCryptor: number,
tooManyAttempts: number,
}
Sys.decryptorResultCode  :: {
success: number,
decryptionFailure: number,
missingKeyRatchet: number,
invalidNonce: number,
missingCryptor: number,
}
Sys.loggingSeverity  :: {
verbose: number,
info: number,
warning: number,
error: number,
none: number,
}