Protocols

The following protocols are available globally.

  • Undocumented

    See more

    Declaration

    Swift

    public protocol CoreCryptoProtocol
  • Undocumented

    See more

    Declaration

    Swift

    public protocol ClientIdProtocol : AnyObject, Sendable
  • A unique identifier for a single conversation.

    The backend provides an opaque string identifying a new conversation. Construct an instance of this newtype to pass that identifier to Rust.

    See more

    Declaration

    Swift

    public protocol ConversationIdProtocol : AnyObject, Sendable
  • Undocumented

    See more

    Declaration

    Swift

    public protocol CoreCryptoProtocol : AnyObject, Sendable
  • Undocumented

    See more

    Declaration

    Swift

    public protocol CoreCryptoContextProtocol : AnyObject, Sendable
  • This trait is used to provide a callback mechanism to hook up the respective platform logging system.

    See more

    Declaration

    Swift

    public protocol CoreCryptoLogger : AnyObject, Sendable
  • See [core_crypto::e2e_identity::E2eiEnrollment]

    See more

    Declaration

    Swift

    public protocol E2eiEnrollmentProtocol : AnyObject, Sendable
  • An EpochObserver is notified whenever a conversation’s epoch changes.

    See more

    Declaration

    Swift

    public protocol EpochObserver : AnyObject, Sendable
  • The raw public key of an external sender.

    This can be used to initialize a subconversation.

    See more

    Declaration

    Swift

    public protocol ExternalSenderKeyProtocol : AnyObject, Sendable
  • MLS Group Information

    This is used when joining by external commit. It can be found within the GroupInfoBundle within a CommitBundle.

    See more

    Declaration

    Swift

    public protocol GroupInfoProtocol : AnyObject, Sendable
  • An HistoryObserver is notified whenever a new history client is created.

    See more

    Declaration

    Swift

    public protocol HistoryObserver : AnyObject, Sendable
  • A signed object describing a client’s identity and capabilities.

    Includes a public key that can be used to encrypt to that client. Other clients can use a client’s KeyPackage to introduce that client to a new group.

    See more

    Declaration

    Swift

    public protocol KeyPackageProtocol : AnyObject, Sendable
  • Used by core crypto to send commits or application messages to the delivery service. This trait must be implemented before calling any functions that produce commits.

    See more

    Declaration

    Swift

    public protocol MlsTransport : AnyObject, Sendable
  • A secret key derived from the group secret.

    This is intended to be used for AVS.

    See more

    Declaration

    Swift

    public protocol SecretKeyProtocol : AnyObject, Sendable
  • A TLS-serialized Welcome message.

    This structure is defined in RFC 9420: https://www.rfc-editor.org/rfc/rfc9420.html#joining-via-welcome-message.

    See more

    Declaration

    Swift

    public protocol WelcomeProtocol : AnyObject, Sendable