The *former* small web toolkit for Go
This repository has been archived on 2023-05-01. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
tjpcc 9cbdbe8c8f
continuous-integration/drone/push Build is passing Details
there's a router in our future
2023-01-11 14:20:42 -07:00
contrib remove some debugging prints, gofmt 2023-01-10 17:50:44 -07:00
examples lots more documentation comments 2023-01-11 10:36:56 -07:00
gemini much more extensive gus/gemini testing 2023-01-11 13:19:42 -07:00
.drone.yml Initial commit. 2023-01-09 16:40:24 -07:00
.gitignore WIP improve test coverage 2023-01-11 11:41:07 -07:00
LICENSE.txt add unlicense 2023-01-09 22:21:57 -07:00
README.md branding change 2023-01-10 23:06:54 -07:00
TODO.md there's a router in our future 2023-01-11 14:20:42 -07:00
go.mod Initial commit. 2023-01-09 16:40:24 -07:00
go.sum Initial commit. 2023-01-09 16:40:24 -07:00

README.md

Gus: The small web server toolkit

Gus is named after Virgil "Gus" Grissom, one of the pilots in the Gemini program and commander of Gemini 3.

Gus is, to my knowledge, the first gemini server conceived as a toolkit. The goal is to provide the go-to set of Go libraries for interacting with the gemini protocol as a server or client, somewhat analagous to net/http in the standard library.

Thus gus/gemini defines types such as Request and Response, useful interfaces such as a Handler abstraction, the concept of Middleware, and a Server which brings together a net.Listener, a tls.Config, and a Handler to actually serve the protocol. It does not, however, contain any logic for serving files from the filesystem or things of that nature.

Many of the utilities needed to build an actually useful server are in gus/contrib sub-packages, and there are examples of how to compose them in the examples directory.