Fork of go-gemini
Go to file
2023-05-26 00:45:08 -04:00
certificate certificate.Store: Call os.MkdirAll on Load 2021-03-09 08:59:28 -05:00
examples Export TLS & remove conn in request struct 2023-05-26 00:38:12 -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
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 fs: Prevent invalid directory links 2022-05-07 13:54:56 -04:00
gemini.go Tweak request and response parsing 2021-03-20 12:27:20 -04:00
go.mod Change package URL in go.mod 2023-05-26 00:37:56 -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
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
middleware.go LoggingMiddleware: Prevent writing empty meta 2021-04-21 11:38:34 -04:00
mux_test.go mux: Add more tests 2021-06-26 20:16:38 -04:00
mux.go mux: Tweak documentation 2021-06-26 20:26:30 -04:00
query.go Update documentation 2021-02-23 18:45:58 -05:00
README.md Add link to ogirinal in readme 2023-05-26 00:45:08 -04:00
request_test.go Tweak request and response parsing 2021-03-20 12:27:20 -04:00
request.go Export TLS & remove conn in request struct 2023-05-26 00:38:12 -04:00
response_test.go Revert "Replace uses of ioutil with io" 2021-03-23 22:02:32 -04:00
response.go response: Remove unnecessary length check 2021-03-20 18:29:40 -04:00
server.go Export TLS & remove conn in request struct 2023-05-26 00:38:12 -04: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

This repository is a fork of go-gemini implementing better parity with net/http and some tweaks required for use in Hnakra.

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.tebibyte.media/sashakoshka/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

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.