We build Germ — an end-to-end encrypted messaging app — using Swift, and maintain these open source libraries:
The two main protocols you need to construct Germ's cross-user wire formats:
Package
What it does
License
autonomous-comm-protocol
CommProtocol — a protocol for autonomous communication between users
MIT
twomlspq-swift
Swift-native 1:1 triple ratchet (TwoMLSPQ)
Apache-2.0 OR MIT
A family of protocols for atproto clients.
Package
What it does
License
AtprotoClient
AT Protocol client that takes an injected OAuth session for authenticated requests
MIT
AtprotoOAuth
AT Protocol OAuth client
MIT
AtprotoTypes
Swift types for AT Protocol primitives, with verification and mock variants
MIT
Microcosm
Client for the AT Protocol services on microcosm.blue
MIT
Spec-driven cryptography libraries
Package
What it does
License
swift-mls
A construction kit for MLS-family protocols (RFC 9420) , built on swift-crypto
MIT
swift-raae
Random-access authenticated encryption and the SEAL construction, per draft-sullivan-cfrg-raae . Pre-1.0: stored bytes are not yet stable across draft revisions
MIT
TwoMLSPQ
A rust implementation of twomlspq. Now superceded by twomlspq-swift, but this was the original implementation that contains the protocol reference.
Apache-2.0 OR MIT
Package
What it does
License
jxl-encoder-swift
Pure-Swift lossy JPEG XL encoder (ISO/IEC 18181) — no unsafe constructs, no C dependencies; a port of libjxl
BSD-3-Clause
oauth4swift
Building blocks for OAuth 2.1 clients, inspired by oauth4webapi
MIT
Package
What it does
License
GermConvenience
Leaf-dependency convenience extensions shared across Germ projects (HTTP, HTTP signatures, CBOR)
MIT
swift-secret-bytes
Zeroizing custody types for secret bytes, built around swift-crypto's SymmetricKey
MIT
Package
What it does
License
atproto-pmr
Interop specification for the Atproto Personal Messaging Relay — a weakly trusted, persistently online delegate of an atproto DID
MIT