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.
|