mirror of
https://github.com/TeamPiped/documentation.git
synced 2024-08-14 23:50:09 +00:00
1.2 KiB
1.2 KiB
title | weight | summary |
---|---|---|
Architecture | 4 | How is Piped architectured? |
How is Piped's architecture?
Piped has 3 components:
Frontend
- Uses videojs
- Uses a router for a single page application.
Backend
- Uses Java 11
- Uses the native HTTP client introduced in Java 9
- Uses netty-reactor to achieve maximum performance and a low footprint.
- Supports OpenJ9
- Each running instance should configure their own proxy, thus allowing multi-gigabit content delivery.
- Uses ~70-130 MB of ram. (on OpenJ9)
Proxy
- Uses Golang
- Has HTTP/2 support. (HTTP/3 is unstable in the current library)
- Low memory footprint and high throughput.
- Can be used to replace the proxy in various other frontends.
Server-Side Caching
Caching is done at a Reverse-Proxy/CDN level to reduce the load to the backend. This also makes it more scalable.
LBRY
LBRY streams are automatically added to stream content via LBRY if the same video is available there.