~nytpu/smallnet

Gemini and Gopher client library for Common Lisp
gemini, gopher: add FORCE-DECODE option
tag 1.1.0 (which should've been done on previous version bump...)
gemini: remove some type declarations since they don't always enforce typechecking

clone

read-only
https://git.sr.ht/~nytpu/smallnet
read/write
git@git.sr.ht:~nytpu/smallnet

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

#Smallnet — Gemini and Gopher client library for Common Lisp

builds.sr.ht status license: MPL-2.0

A library for working with various smallnet protocols for Common Lisp. Currently supports making Gemini and Gopher requests and parsing their associated "document formats".

The Gemini client complies with version 0.24.1 of the Gemini network protocol specification. The gemtext parser complies with version 0.24.1 of the Gemini hypertext format specification. The Gopher client and gophermap/menu parser complies with RFC 1436 (plus some de facto standard extensions that are near-universally supported), and with RFC 4266 for Gopher URI handling.

On Windows systems it uses the Windows SChannel API for TLS via the SChannel Lisp library. On all other systems it uses OpenSSL via the CL+SSL library. Windows support is undertested currently…

#Documentation

SMALLNET is the main ASDF system for loading the library.
SMALLNET.GEMINI is the package relating to the Gemini Protocol.
SMALLNET.GOPHER is the package relating to the Gopher protocol.
SMALLNET is the "parent" package and only contains some internal shared code.

See src/package.lisp for all exported symbols from each package.

See the docstrings in src/gemini.lisp and src/gopher.lisp for documentation on the REQUEST routines and below them for the structure of the parsed line types.

#Contributing

The upstream URL of this project is https://git.sr.ht/~nytpu/smallnet. Send suggestions, bugs, patches, and other contributions to alex@nytpu.com or ~nytpu/public-inbox@lists.sr.ht. For help sending a patch through email, see https://git-send-email.io.

If you aren't comfortable sending a patch through email, get in touch with a link to your repo and I'll pull the changes down myself!

Copyright © 2024 nytpu <alex [at] nytpu.com>.

Licensed under the terms of the Mozilla Public License version 2.0. You can view a copy of the MPL in LICENSES/LICENSE or at https://www.mozilla.org/en-US/MPL/2.0/.

Please view COPYING for a full copyright statement of the project and all dependencies.

Note that if you are redistributing binary copies of the library (or source copies with vendored dependencies) then you must comply with all transitive dependencies' licenses as enumerated in COPYING, alongside complying with the MPL.