Skip to content

Developer overview

Lupyd’s backend has two main services. Both are written in Rust, authenticate users with the same Auth0 access tokens, and exchange Protocol Buffers.

Service Repository Responsibility
Firefly firefly (client libraries and schema), firefly-mls (server) End-to-end encrypted messaging: devices, 1:1 chats (Signal protocol), groups (MLS), calls, meetings, encrypted backups, and push notifications.
Lupyd Server lupyd-rust-server The social layer: profiles, follows and blocks, posts, votes, hashtags, and notifications.
  • Authentication: Authorization: Bearer <JWT> with an Auth0 access token for the audience https://lupyd.com. See Lupyd Server authentication and Firefly authentication.
  • Encoding: request and response bodies are protobuf unless a page says otherwise.
  • List parameters: comma-separated, with the comma percent-encoded as %2C.
  • CORS: both services allow any origin, so browser clients can call them directly.