diff --git a/README.md b/README.md index 8249e5a..a745d1a 100644 --- a/README.md +++ b/README.md @@ -14,74 +14,141 @@ WARNING: the development branch is filled with lava, fear and capitalism. # Features -- Built with concurrency and efficiency in mind. +- Built with security, concurrency and efficiency in mind. - ZERO external dependencies. -- Security focused -- chroots into server direrctory and drops - privileges. `maybe wait until stable release before use outside of hobby - setups.` - -- LRU file caching -- with user-controlled cache size, max cached file size +- LRU file caching with user-controlled cache size, max cached file size and cache refresh frequency. -- Insert files within gophermaps, including automating reflowing of lines - longer than (user definable) page width. +- CGI/1.1 support (see below for CGI environment variables set). -- Automatic replacement of `$hostname` or `$port` with the information of - the host the client is connecting to. +- URL encoding with query support. -- User supplied footer text appended to gophermaps and directory listings. +- Serve `DIR/gophermap` by default, else falls back to directory listing. -- Item type characters beyond RFC 1436 standard (see below). +- Parsing of any files named `gophermap` or ending in `.gophermap` as + gophermaps. -- Separate system and access logging with output to file if requested (or to - disable both). +- Executable gophermap support. -# Usage +- Insert files with automated line reflowing, output of any CGI scripts + or executable gophermaps WITHIN gophermaps. -``` -gophor [args] - -root Change server root directory. +- Support for all commonly accepted item type characters (beyond just + RFC1436 support). + +- Automatic replacement of `$hostname` or `$port` in gophermap lines with + current host information. + +- User supplied footer text appended to gophermaps and directory listings. - -port Change server NON-TLS listening port. +- File remapping support via regex, of format: - -hostname Change server hostname (FQDN, used to craft dir - lists). + `/virtual/file -> /actual/file` - -bind-addr Change server bind-address (used in creating - socket). + e.g. scripts within `cgi-bin` to the root directory: + `/(?P