1
0
Fork 0
mirror of https://git.sr.ht/~adnano/go-gemini synced 2024-04-28 05:24:59 +02:00
Go implementation of the Gemini protocol
Go to file
Adnan Maolood b95b0e6a69 Use bytes.CutSuffix to trim CRLF 2024-03-10 09:35:32 -04:00
certificate certificate: Fix store directory creation 2024-01-20 17:31:30 -05:00
examples Rename ServeMux to Mux 2021-03-15 15:44:35 -04:00
tofu Run go fmt 2023-06-29 01:50:57 -04: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 readme: Update Project Gemini website 2023-12-25 10:43:54 -05:00
client.go client: Only get cert if TrustCertificate is set 2021-03-20 12:54:41 -04:00
doc.go doc: Fix Mux documentation 2022-02-16 12:01:55 -05:00
fs.go Run go fmt 2023-06-29 01:50:57 -04:00
gemini.go Use bytes.CutSuffix to trim CRLF 2024-03-10 09:35:32 -04:00
go.mod Use bytes.CutSuffix to trim CRLF 2024-03-10 09:35:32 -04:00
go.sum Upgrade to Go 1.18 2023-06-29 01:47:52 -04: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: Tweak documentation 2021-06-26 20:26:30 -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 Use bytes.CutSuffix to trim CRLF 2024-03-10 09:35:32 -04:00
request_test.go Tweak request and response parsing 2021-03-20 12:27:20 -04:00
response.go Use bytes.CutSuffix to trim CRLF 2024-03-10 09:35:32 -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 Fix parsing of list item lines 2022-03-15 11:07:04 -04: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.16.0 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.