sunbeam/README.md

34 lines
1.9 KiB
Markdown
Raw Normal View History

2019-05-31 05:59:11 +00:00
# Sunbeam TCP Relay v0.1
#### Elizabeth Evelene Amelia Diode, June 2019
#### AGPL v3
### Oh no, what is it this time?
Sunbeam is a simple and fast multi-endpoint TCP relay for
for um
2019-05-31 06:10:13 +00:00
we swear we had a perfectly reasonable use in mind, but we honestly can't remember it now.
2019-05-31 05:59:11 +00:00
Basically it just lets clients connect from anywhere, takes data from them, and redistributes
it to all the other connected clients. It's written with an asynchronous structure and
nonblocking I/O, meaning it should be pretty fast, ideally fast enough to handle audio streams
and stuff.
We originally envisioned this as a similar (and similarly-cursed) project to Epistlebox, which
would play the role of an online chat platform to complement the other's terrible imitation of
email. You can indeed use it for that purpose, e.g. by running
`nc [server address] 55555`
on each of the clients, typing messages, and pressing enter.
2019-05-31 06:10:13 +00:00
There is no way to tell which client a message originated from, so if you're planning on using
this for a group chat (a very bad idea, to be sure) then you'll have to constantly remind each
other who you are with each message.
If you use it for audio with multiple sources, then the streams will interleave, and you'll end
up with garbage. We don't really recommend doing that.
This program is called "sunbeam" because of a particular plot device that we thought was clever
in the sci-fi novel *The Three Body Problem* by Cixin Liu. A character discovers that, due to a
particular plasma-driven mechanism inside the sun, it's possible to use the sun as a gigantic
radio amplifier at certain frequencies - all you have to do is launch a radio beam into the
photosphere with enough intensity, and it bounces back out with orders of magnitude more power.
That's basically what this program does - you just aim your transmitter at it and start
talking, and it lets you communicate with other receivers that you normally couldn't reach.