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. |
ArchitectureHow clients, Firefly, the Lupyd Server, and Auth0 fit together.
Firefly overviewEncrypted messaging, groups, and real-time transport.
Lupyd Server overviewSocial graph and content REST API.
Firefly client SDKRust and JavaScript libraries that handle the cryptography for you.
Shared conventions
Section titled “Shared conventions”- Authentication:
Authorization: Bearer <JWT>with an Auth0 access token for the audiencehttps://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.