binarycat

networking

an incredibly simple protocol for reliably and correctly downloading large immutable files.

Read more...

refining the ideas behind HTTP, BitTorrent, Gemini, and 9p to create a simple protocol for reliably transferring large immutable files.

Read more...

What

imagine you have two devices, a client and a server, connected in a peculiar way:

  1. the server cannot send messages to the client without the client asking for them
  2. there are two channels, a request on one channel can only be responded to on the same channel
  3. the first channel has infinite bandwith and is perfectly reliable, but each message is obscenely expensive.
  4. the second channel is free, but can only send messages with a single payload bit, and the message has a 50% chance of being dropped

You've just been tasked with building a layer on top of this so that the server can send messages to the client, what do you do?

Read more...