1
0
Fork 0
mirror of https://git.sr.ht/~adnano/go-gemini synced 2024-05-14 12:26:05 +02:00
Go implementation of the Gemini protocol
Go to file
Adnan Maolood b5c47a5ef0 mux: Add more tests 2021-06-26 20:16:38 -04:00
certificate certificate.Store: Call os.MkdirAll on Load 2021-03-09 08:59:28 -05:00
examples Rename ServeMux to Mux 2021-03-15 15:44:35 -04:00
tofu tofu: Use stricter file permissions 2021-03-09 08:58:36 -05:00
.build.yml Add build manifest 2021-02-16 00:05:10 -05:00
LICENSE Split LICENSE into two files 2021-03-24 13:08:32 -04:00
LICENSE-GO Split LICENSE into two files 2021-03-24 13:08:32 -04:00
README.md Update README.md 2021-03-24 13:30:46 -04:00
client.go client: Only get cert if TrustCertificate is set 2021-03-20 12:54:41 -04:00
doc.go Rename ServeMux to Mux 2021-03-15 15:44:35 -04:00
fs.go fs: Avoid equality check if lengths don't match 2021-04-21 12:48:27 -04:00
gemini.go Tweak request and response parsing 2021-03-20 12:27:20 -04:00
go.mod Revert "Require Go 1.16" 2021-03-23 22:05:12 -04:00
go.sum client: Support IDNs 2021-02-09 15:59:47 -05:00
handler.go Add message argument to TimeoutHandler 2021-02-28 22:07:24 -05:00
io.go response: Don't use bufReadCloser 2021-03-20 13:41:53 -04:00
middleware.go LoggingMiddleware: Prevent writing empty meta 2021-04-21 11:38:34 -04:00
mux.go mux: Remove support for handling schemes 2021-06-26 18:50:09 -04:00
mux_test.go mux: Add more tests 2021-06-26 20:16:38 -04:00
query.go Update documentation 2021-02-23 18:45:58 -05:00
request.go Tweak request and response parsing 2021-03-20 12:27:20 -04:00
request_test.go Tweak request and response parsing 2021-03-20 12:27:20 -04:00
response.go response: Remove unnecessary length check 2021-03-20 18:29:40 -04:00
response_test.go Revert "Replace uses of ioutil with io" 2021-03-23 22:02:32 -04:00
server.go server: Disallow ServeConn usage after Shutdown 2021-02-24 19:25:52 -05:00
status.go status: Reintroduce StatusSensitiveInput 2021-03-15 15:19:43 -04:00
text.go text: Update documentation 2021-02-23 09:18:34 -05:00

go-gemini

godocs.io builds.sr.ht status

Package gemini implements the Gemini protocol in Go. It provides an API similar to that of net/http to facilitate the development of Gemini clients and servers.

Compatible with version v0.14.3 of the Gemini specification.

Usage

import "git.sr.ht/~adnano/go-gemini"

Note that some filesystem-related functionality is only available on Go 1.16 or later as it relies on the io/fs package.

Examples

There are a few examples provided in the examples directory. To run an example:

go run examples/server.go

Contributing

Send patches and questions to ~adnano/go-gemini-devel.

Subscribe to release announcements on ~adnano/go-gemini-announce.

License

go-gemini is licensed under the terms of the MIT license (see LICENSE). Portions of this library were adapted from Go and are governed by a BSD-style license (see LICENSE-GO). Those files are marked accordingly.