Photon Architecture
The major goal of Photon is to handle concurrency and I/O (including file I/O and networking I/O).
Its components are:
- Thread, vCPU, locks and sync primitives, event engines, task dispatching ...
- Multiple IO wrappers: psync, posix_aio, libaio, io_uring
- Multiple socket implementations: tcp (level-trigger/edge-trigger), unix-domain, zero-copy, libcurl, TLS support, etc.
- High performance RPC client/server, HTTP client/server.
- A POSIX-like filesystem abstraction and some implementations: local fs, http fs, fuse fs, e2fs, etc.
- Common utilities: io-vector manipulation, resource pool, object cache, mem allocator, callback delegator, pre-compiled logging, lockless ring buffer, defer, range lock, throttle, etc.