~sotirisp/go-netcache

Offline finger/gopher/gemini/spartan cache
proxy: fix GopherMenuToHTML() h type handling
proxy: remove erroneous Gopher types
proxy: improve GemtextToHTML()

clone

read-only
https://git.sr.ht/~sotirisp/go-netcache
read/write
git@git.sr.ht:~sotirisp/go-netcache

You can also use your local clone with git send-email.

#go-netcache

An offline cache library for the finger, gopher, gemini, spartan and nex protocols. It also contains an implementation of a command-line interface and a caching proxy using the library. It was inspired by the offpunk smolnet client and strives to keep cache-compatibility with it.

Both the go-netcache library API and tools are still subject to change as I figure out limitations while implementing the remaining features.

#Proxy setup

To use the go-netcache proxy in the lynx browser launch netcache-proxy and set the following environment variables:

finger_proxy=http://localhost:8080/
gemini_proxy=http://localhost:8080/
gopher_proxy=http://localhost:8080/
spartan_proxy=http://localhost:8080/

The same proxy can be used with the lagrange browser by setting the “Gemini proxy” setting to localhost:11965.

#Planned features and known issues

  • TOFU scheme for Gemini.
  • Simple HTTP/HTTPS caching.
  • Native Gemini and Spartan proxies in addition to the HTTP one.
  • Expose more proxy/cli settings through command line options.
  • Linkify plaintext URLs in the HTML converters for the proxy.
  • Proxy Finger as HTML to allow linkifying URLs.
  • Manpages for the proxy and cli.
  • Documentation for the library.

#License

Copyright 2023 Sotiris Papatheodorou

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.