Skip to content

Latest commit

 

History

History
11 lines (9 loc) · 1.73 KB

RAD.md

File metadata and controls

11 lines (9 loc) · 1.73 KB

Resilient Asset Delivery (RAD)

For assets that do not contain personal information (e.g. videos, images, textures, etc that are generally responsible for most bandwidth usage) e.g. requests that would not use the Cache-Control: private header.

  • App requests a list of HTTP urls to be saved to a given local (e.g. on disk) location
  • If assets already available, return existing location
  • If not available, use Internet Cache Protocol (ICP) to query other devices on the network to see if the asset can be downloaded locally. Peers will be discovered standard Network Service Discovery.
  • If the device is not connected to any network, the library/device MAY send ICP requests using Bluetooth Low Energy instead. If a nearby device is found to have the content, a WiFi connection may be formed using WiFi Direct.
  • If the network (e.g. school network, Mobile Network Operator) advertises a proxy using Web Proxy Auto Discovery, then use (if already acceptped by user) the network cache
  • If not available on local network, download using HTTP (which can use standard Content Delivery Networks e.g. CloudFlare) via the network cache if available.
  • If the list of URLs aligns with a pre-assembled Play Asset Delivery pack, and Google Play Services are available, this may be used to fetch assets instead of the origin http server (e.g. to further reduce bandwidth costs and utilize the Google Global Cache that many ISPs already utilize)