# LR-87: A Gemini Client
LR-87 is a simple implementation of a client for launching into the world of the
Gemini protocol, a fun place somewhere between Gopher and the World Wide Web. The
client is implemented entirely in Fortran.
alt="LR-87 on Linux"
alt="LR-87 on Windows"
alt="LR-87 with the Windows GUI"
LR-87 can be launched with an initial address, or it will default to
If you want to try out LR-87, you have a few choices:
Builds for Windows are available at (https://bin.rainbow-100.com) as a simple Zip
file. These builds are not signed, so modern Windows will likely bitch about
LR-87 is available as a [Snap](https://snapcraft.io/lr87). Because packaging for
GNU/Linux is such a nightmare, this is the only way it will be made available by
## Dumb Terminal Mode
The default interface assumes you are at a dumb terminal, so you'll be presented
with a nice Fortran-esque input prompt after the first page of a site is displayed.
The prompt supports paging, entering link numbers, going back, or quitting, and it
is somewhat self-explanatory. The user should be aware that the command, such as
"B" for back must be followed by the ENTER/RETURN key.
Links are displayed in LR-87's default renderer as:
`[ 1][ Gemini documentation]`
The link is numbered, and it can be followed by entering the link number at the
input prompt. Note that the link numbering *will change when page up or page down
is performed*. If you page down, for example, the new link number 1 is the new
first visible link, not the link labeled number 1 prior to page down. This
insane behavior is merely the product of the default renderer, not the underlying
## GUI Mode
LR-87 can be built for Windows using the dumb terminal mode described above or
using a GUI through the AppGraphics library, included with Simply Fortran. The
GUI mode behaves much as one would expect.
## What's Not Supported
LR-87 works, but it does _not_ remember certificates, store history or bookmarks,
or support sending user certificates. It will also complain if you attempt to
download a non-text file or try to access a non-Gemini address. These features
might be added in the future, but don't hold your breath.
LR-87 requires a substantial number of Fortran 2003/2008 features. The software
compiles fine with relatively modern versions of GNU Fortran (tested with versions 8
and 9). [Simply Fortran](https://simplyfortran.com) projects are included for both
Windows and UNIX-y operating systems.
On Windows, users will need an OpenSSL implementation for linking. I suggest, but
do not endorse, [this distribution](https://bintray.com/vszakats/generic/openssl),
which seems to work fine.
All drawing, status reporting, and user interaction is handled by derived types
extended from the abstract "renderer" type, which handles parsing links and wrapping
regular text internally. A new renderer would be relatively easy to generate if it
implemented the abstract interfaces in the "renderer" type.
The code currently contains two implementations, "dumb_renderer," that assumes the
user is at a dumb terminal, and "ag_renderer," that provides a GUI using the
AppGraphics library from Simply Fortran.
LR-87 is Copyright (c) 2020 Jeffrey Armstrong <email@example.com>, and the software
is licensed under the JSON license. See LICENSE.txt for more details.