cuttle/README.md

2.2 KiB

Godiva, a flasher with a message

Godiva is a desktop application for transfering data from one computer to another by displaying a [possibly endless] stream of QR encoded Raptor codes, and then on the receiving side, a camera to read the QR codes and turn them back into the original content.

what?

Raptor codes are a type of fountain code; fountain codes are a way to encode data as a stream of error-correcting pieces of that data; as long as you can read some number of pieces, you can reconstruct the original data. They're named like that because you can think of them as like a fountain of water that is just pouring out. Anyone can come drink from it, and then they'll have the water. So something can just be transmitting fountain codes and not care if anyone is receiving, and receivers don't have to worry about missing something they needed; they're guaranteed to get everything they need as long as they listen long enough. I think that's pretty cool!

So the idea here is to give it a file (or short string of text) you want transferred to a different machine (probably a mobile phone running a little app I'll be writing), and it will start producing raptor codes for that file. Each piece of raptor code then gets encoded as a QR code, and then displayed for a period of time on the screen. The user then holds up the receiving computer's camera in order to receive the QR encoded raptor codes, and, voila, the file has been transferred!

status

I literally just started this today, and currently it will produce a single QR code for a given input string, and display that. Honestly, this is already genuinely useful to me; sometimes I want to look at a url on my phone, and the camera app will let me look at a QR code and interpret text as a link. But I hope to have a quick and dirty mobile app soon that will let me test streaming codes.

about the name

Lady Godiva, in legend, rode naked through her town in order to send a message to her husband about the plight of the downtrodden under his landlordship.