expanded readme

This commit is contained in:
Ellie D 2019-06-01 02:18:48 -05:00
parent 51f646d85e
commit 3423fff968
1 changed files with 10 additions and 10 deletions

View File

@ -1,14 +1,14 @@
# 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
we swear we had a perfectly reasonable use in mind, but we honestly can't remember it now.
### What it does
Sunbeam is a little tiny server that passes data between TCP connections.
@ -32,16 +32,16 @@ can also pass the `-l` flag to require Sunbeam to run in loopback mode.
General usage looks like the following:
`sunbeam [-l] [local port] [remote address]:[port]`
### How to block IP addresses
It's 2019, and a server that can't filter incoming connections is a server that belongs to The
Enemy. That's why Sunbeam, minimal as it is, includes this functionality nonetheless.
You can create the file `.nosunbeam` in the directory where Sunbeam runs. Sunbeam will read it,
parse each line as an IP address (v4 or v6 are both fine), and immediately drop any incoming
connections from those addresses.
### Why you can't give it domain names
Rust has a minimal stdlib. One consequence of this is the fact that there's no way to resolve a
domain name using only stdlib, without writing and entire DNS client yourself. We admit we don't
@ -50,8 +50,8 @@ name resolution, or pull in some enormous DNS crate with 37 unstable dependencie
former. As a result, you'll have to do your DNS resolution some other way, like by running `dig`
at the command line to look up the IP address for the domain you want. Yes, it's clunky, but
ergonomics are not really the biggest problem this program has either.
### Why it's called 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