How dvtate/fiy works
FIY is a platform for hosting federated apps: requests enter its HTTP server and are handled through the server’s module system, while modules provide app-specific behavior. The repository also includes federation identity and peer support, several built-in apps, and a standalone asset CDN. The server session and several module implementations were not sampled, so links involving their internal dispatch are limited to relationships supported by the available excerpts and file tree.
Main entry points: ApiRouter.hpp Git routes and APIs · Server.cpp HTTP listener · Mod.cpp Module lifecycle · Peers.cpp Peer registry
Components 25
Server hosting
- Protocol server
protocol/main.cpp - HTTP listener
protocol/Server/Server.cpp - Request session
protocol/Server/Session.cpp - Server router
protocol/Server/Router.cpp - Module manager
protocol/mods/Mods.cpp - Module lifecycle
protocol/mods/Mod.cpp - Module connectors
protocol/mods/ModConnector.hpp
Federation and identity
- Local users
protocol/users/LocalUsers.cpp - Peer registry
protocol/peers/Peers.cpp - Peer authentication
protocol/peers/PeerAuth.cpp - HTTP clients
protocol/HttpsClient.hpp - OAuth app
mods/oauth/mod.cpp - Notifications app
mods/notifications/mod.cpp - Reverse proxy app
mods/reverse_proxy/mod.cpp
Built-in apps
- Git app
mods/git/src/mod.cpp - Git routes and APIs
mods/git/src/Routes/ApiRouter.hpp - Repository operations
mods/git/src/Repos/Repos.cpp - Git app database
mods/git/src/DB.cpp - Contacts app
mods/contacts/src/mod.cpp - Contacts interface
mods/contacts/frontend/src/main.ts - Social app
mods/social/src/Posts.cpp - Mail app
mods/mail/mod.cpp
Assets and delivery
- Static file app
mods/static/mod.cpp - Asset CDN
mods/storage/cdn/main.cpp
Other components
- App user
Connections 11
- App user → HTTP listener: sends requests
- HTTP listener → Request session: opens session
- Protocol server → HTTP listener: starts listener
- Module manager → Module lifecycle: manages lifecycle
- Module lifecycle → Module connectors: selects connector
- Git app → Git routes and APIs: routes requests
- Git routes and APIs → Repository operations: uses repository operations
- Git routes and APIs → Git app database: queries app data
- Contacts interface → Contacts app: uses app API
- Peer authentication → Peer registry: checks peer state
- HTTP clients → Peer registry: contacts peers