summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-05-01exercise router code in an exampletjpcc
2023-05-01still log requests for which we failed to find a handlertjpcc
2023-05-01fixes to /*remainder route segmentstjpcc
2023-05-01include the time spent in the handler for the 'dur' log keyv1.0.0tjpcc
2023-05-01make spartan.Client.RoundTrip match the API of other clients.tjpcc
- Request.Meta is already used as an *io.LimitedReader in spartan servers, so by following this convention the RoundTrip method doesn't need anything more than the *Request. - Make a new public method for setting the body on a spartan request.
2023-05-01more README updatestjpcc
- lowercase the name everywhere - include a link back to gus
2023-05-01explain the nametjpcc
2023-05-01sliderule ascii arttjpcc
2023-05-01name change gus -> slideruletjpcc
2023-04-30spartan handler for a CGI directorytjpcc
2023-04-29spartan FS servertjpcc
2023-04-29spartan =: prompt line support in gemtexttjpcc
2023-04-29initial spartan client supporttjpcc
2023-04-29tests and bugfixes to spartan request parsingtjpcc
2023-04-29initial spartan server supporttjpcc
2023-04-29include a CSS class in htmlconv outputtjpcc
2023-02-15Switch Handler to an interface.tjpcc
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.
2023-02-14no need to combine sub-router params any moretjpcc
2023-02-14Router improvements.tjpcc
- test coverage for Router, not just PathTree - Router.Mount() now flattens routes into the parent router - Router.Use() implemented to set middleware on a router itself
2023-02-02Mount() adds a subrouter under a prefix pattern.tjpcc
...though I'm already eyeing a better approach.
2023-02-02Initial Router work.tjpcc
- Router type, supports: adding handlers, serving, fetching the matching handler for a route. - Private PathTree type handles the modified radix trie.
2023-01-30include gemini scheme in a URLtjpcc
2023-01-30mention release signing and the key usedtjpcc
2023-01-30finger protocoltjpcc
2023-01-28fix tests for #15 changetjpcc
2023-01-28middleware to turn away non-gemini requests. fixes #3.tjpcc
2023-01-28permanently redirect from /dir to /dir/ on gemini. fixes #15tjpcc
2023-01-28README updatestjpcc
2023-01-28gopher support.tjpcc
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.
2023-01-26test coverage and resulting bugfixestjpcc
2023-01-25test coverage for the cgi contribtjpcc
2023-01-24testing and linting and linter fixestjpcc
2023-01-24Add support for titan:// to the gemini servertjpcc
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.
2023-01-23logging library up to top leveltjpcc
2023-01-20update READMEs for contrib/tlsauthtjpcc
2023-01-20"tlsauth" contrib packagetjpcc
This package adds authentication middlewares via TLS client certificates.
2023-01-19minor marketing updatetjpcc
2023-01-19New sharedhost contrib package.tjpcc
ReplaceTilde simply replaces a leading ~ in the URL. Fixes #9.
2023-01-19package documentation: gemini, gemtext, contribtjpcc
2023-01-18bugfix and some docs cleanuptjpcc
2023-01-17Updatestjpcc
* update README * move "gemtext" to within "gemini"
2023-01-17pull request, response, handlers out of the gemini packagetjpcc
2023-01-15fix gmi->md templates and regenerate the READMEtjpcc
2023-01-15updated gmi2md templatetjpcc
2023-01-15Completed markdown and HTML conversion.tjpcc
2023-01-14markdown convertertjpcc
2023-01-14update README with latest from the gemini sitetjpcc
2023-01-14Completed gemtext package.tjpcc
resolves #2 - fuzz testing - split out line parsing into a separate file - changed line type-specific public []byte fields to string accessor methods - added document parsing test for a stress test doc - added dependency on stretchr/testify
2023-01-13Initial gemtext package.tjpcc
Contains: - gemtext AST (Document and line types) - Parse from an io.Reader - ParseLine a []byte - doc comments on everything - ParseLine tests for every line type Still needs tests for Parse & Document.
2023-01-12TODOs have been converted to gitea issuestjpcc