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
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…
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.
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.