diff options
author | tjpcc <tjp@ctrl-c.club> | 2023-05-01 07:56:25 -0600 |
---|---|---|
committer | tjpcc <tjp@ctrl-c.club> | 2023-05-01 07:56:25 -0600 |
commit | 9a2da81b11ad0064cca24ce7974827d032309369 (patch) | |
tree | 4313224dc089208423e78bffc3ec50833e35bcea /README.md | |
parent | 21e2758145d100d74013060f7090d84679cae683 (diff) |
name change gus -> sliderule
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 34 |
1 files changed, 17 insertions, 17 deletions
@@ -1,13 +1,13 @@ -# Gus: The small web toolkit for Go +# sliderule: The small web toolkit for Go -Gus is the toolkit for working with the small web in Go. +Sliderule is the toolkit for working with the small web in Go. Think of it as a net/http for small web protocols. You still have to write your server, but you can focus on the logic you want to implement knowing the protocol is already dealt with. It's been said of gemini that you can write your server in a day. Now you can write it in well under an hour. -## The "gus" package +## The "sliderule" package -Gus is carefully structured as composable building blocks. The top-level package defines the framework in which servers and clients can be built. +Sliderule is carefully structured as composable building blocks. The top-level package defines the framework in which servers and clients can be built. * a request type * a response type @@ -18,7 +18,7 @@ Gus is carefully structured as composable building blocks. The top-level package ## Protocols -The packages gus/gemini, gus/gopher, and gus/finger provide concrete implementations of gus abstractions specific to those protocols. +The packages sliderule/gemini, sliderule/gopher, and sliderule/finger provide concrete implementations specific to those protocols. * I/O (parsing, formatting) request and responses * constructors for the various kinds of protocol responses @@ -28,23 +28,23 @@ The packages gus/gemini, gus/gopher, and gus/finger provide concrete implementat The primary text formats for those protocols have higher-level support provided in sub-packages: -* gus/gemini/gemtext supports parsing gemtext and getting direct programmatic access to its AST. Deeper sub-packages provide converters to other formats (markdown and HTML) with overridable templates. -* gus/gopher/gophermap similarly parses the gophermap format and provides access to its AST. +* sliderule/gemini/gemtext supports parsing gemtext and getting direct programmatic access to its AST. Deeper sub-packages provide converters to other formats (markdown and HTML) with overridable templates. +* sliderule/gopher/gophermap similarly parses the gophermap format and provides access to its AST. ## Logging -Gus borrows the logging interface from go-kit. +Sliderule borrows the logging interface from go-kit. => [The logger interface from go-kit/log.](https://pkg.go.dev/github.com/go-kit/log#Logger) -The gus/logging package provides everything you need to get a good basic start to producing helpful logs. +The sliderule/logging package provides everything you need to get a good basic start to producing helpful logs. * A request-logging middleware with common diagnostics (time, duration, url, status codes, response body lengths) * A simple constructor of useful default loggers at various levels. They output colorful logfmt lines to stdout. ## Routing -The router in the gus package supports slash-delimited path pattern strings. In the segments of these patterns: +The router in the sliderule package supports slash-delimited path pattern strings. In the segments of these patterns: * A "/:wildcard/" segment matches anything in that position, and captures the value as a route parameter. Or if the paramter name is omitted like "/:/", it matches anything in a single segment without capturing a paramter. * A "/*remainder" segment is only allowed at the end and matches the rest of the path, capturing it into the paramter name. Or again, omitting a parameter name like "/*" simple matches any path suffix. @@ -52,7 +52,7 @@ The router in the gus package supports slash-delimited path pattern strings. In Router also supports maintaining a list of middlewares at the router level, mounting sub-routers under a pattern, looking up the matching handler for any request, and of course acting as a Handler itself. -## gus/contrib/* +## sliderule/contrib/* This is where useful building blocks themselves start to come in. Sub-packages of contrib include Handler and Middleware implementations which accomplish the things your servers actually need to do. @@ -66,31 +66,31 @@ The sub-packages include: ## Get it -### Using gus in your project +### Using sliderule in your project To add it to your own go project: ``` -$ go get tildegit.org/tjp/gus +$ go get tildegit.org/tjp/sliderule ``` ### Straight to the code please -=> [The code is hosted here on tildegit.](https://tildegit.org/tjp/gus) +=> [The code is hosted here on tildegit.](https://tildegit.org/tjp/sliderule) -=> [The generated documentation is on the go package index.](https://pkg.go.dev/tildegit.org/tjp/gus) +=> [The generated documentation is on the go package index.](https://pkg.go.dev/tildegit.org/tjp/sliderule) ### Verify releases Since v0.9.0, releases are signed with minisign. The signature file is included in the release downloads page, and the public key is RWSzQywJwHgjSMD0y0RXwXAGpapcMJplwbCVYQqabhAJ+NAnKAeh98Vb - this is also referenced on tjp's home page on gemini. -=> [TJP's home page, which also mentions the public key used for signing gus releases.](gemini://gemini.ctrl-c.club/~tjp) +=> [TJP's home page, which also mentions the public key used for signing sliderule releases.](gemini://gemini.ctrl-c.club/~tjp) ## Contribute There's lots still to do, and contributions are very welcome! -=> [submit an issue or pull request on the tildegit repository,](https://tildegit.org/tjp/gus) +=> [submit an issue or pull request on the tildegit repository,](https://tildegit.org/tjp/sliderule) => [send me an email directly,](mailto:tjp@ctrl-c.club) |