Age | Commit message (Collapse) | Author |
|
Fixes #5
|
|
There are currently only gopher, gemini, and spartan clients. The finger client will have to implement this when it is written.
The Fetch method takes the url as a string for convenience, and parses it into a URL for RoundTrip.
Fixes #3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HandlerFunc is much better as a function returning a Handler, rather
than a newtype for the function type itself. This way there is no
confusion creating a type-inferenced variable with HandlerFunc(func(...
and then using a HandlerFunc where a Handler is expected. Much better to
only have one public type.
|
|
|
|
Some of the contrib packages were originally built gemini-specific and
had to be refactored into generic core functionality and thin
protocol-specific wrappers for each of gemini and gopher.
|
|
|
|
|
|
Titan is a gemini add-on protocol so it really didn't make sense to
build it out in a separate package. The most significant difference in
titan for the purposes of implementation here is that requests can have
bodies following the URL line.
Since gus.Request is a struct, the only way to smuggle in the new field
(a reader for the body) was to stash it in the context.
|
|
|
|
This package adds authentication middlewares via TLS client
certificates.
|
|
|
|
|
|
* update README
* move "gemtext" to within "gemini"
|
|
|
|
|
|
...however unlikely gemini over IPv6 may be (hah!)
|
|
|
|
There is a test of Response.Read that is failing and I haven't yet
figured out why.
|
|
|
|
- NewServer doesn't allocate any resources besides the server object
itself. So eg context.WithCancel is delayed until s.Serve().
- Add a demonstration of graceful shutdown on signals to the cgi
example.
|
|
|
|
|
|
some basics:
- minimal README
- some TODOs
- server and request handler framework
- contribs: file serving, request logging
- server examples
- CI setup
|