While I'm having a moment of calling code stable, I've bumped Wasat to v1.0.0 as well. There's no actual difference here when compared to the last release, other than the development status classifier in the PyPI metadata and the version number.
The library feels pretty stable at this point. I've been using Rogallo every day for a wee while now and I've seen no surprising problems.
Thirty-three days ago, back on the 18th of June, I created a development directory called rogallo, and started adding dependencies and laying out the main user interface of Rogallo. It's been tons of fun working on it while exploring Geminispace. Given that it's quickly turned into my daily driver, and I'm finding it stable, I've decided it's time to drag it out of the 0verse and consider it worthy of being v1.0.0.
I was going to hold off a little longer, mainly because I wanted to flesh out the documentation some more, but that seems like a poor reason to keep it stuck somewhere in v0.x.
To recap, for anyone who might not have followed the development so far: Rogallo is a terminal-based client for the Gemini Protocol. I've built it for my own education. I've built it for fun. I've built it because I want to use it. I've built it hoping that someone else might enjoy it too. Some of the key features, as of this first "stable" release, are:
Keyboard-first TUI interface with good mouse support too.
Bookmark support.
Forward/backward navigation.
Location history.
Home page.
Designed to work on macOS, GNU/Linux and Windows.
Trust-on-first-use support.
In-application creation of client-side certificates.
Full support for user input, both normal and sensitive.
Full support for redirections.
Context-sensitive help screens.
All main application commands available via a command palette or an in-application command line.
Themes.
Responsive layout that dynamically adjusts to terminal resizing.
Support for viewing Gemtext files in the local file system.
View source support.
Copy-to-clipboard support for URIs or page content.
Optionally-numbered links with quick-jump support.
Supports ANSI escape sequences in content.
Supports filtering out ANSI escape sequences.
Emoji filter (lets you remove emojis from most text).
Support for handing off unsupported content to the operating system (with safety checks).
Probably some other stuff I've forgotten right now.
On top of this, there's more to come. v1.0.0 isn't the end of the line with Rogallo. I'm having plenty of fun using it, and improving it, and there's more I want to add. I very much want to add in-app support for the Finger Protocol, and I can see myself falling down the Gopher rabbit-hole1 at some point too. While I don't want the application to grow out of hand, I can see plenty of extensions and enhancements that will be satisfying to add.
If any of this sounds interesting and you want to have a play, Rogallo is licensed GPL-3.0 and available via GitHub and also via PyPI. If you have an environment that has pipx installed, you should be able to get up and running with (note that Python 3.12 or later is required):
Now that Rogallo is starting to settle down somewhat, with all the main Gemini Protocol work falling into place, I've been thinking about adding one or two adjacent protocols. The two most common and obvious ones are Finger and Gopher. While I'm still undecided about adding the latter, the former seems like a fun one to include (if only because I've had an account on plan.cat for around four years now).
With that in mind, much like I did with Wasat, I wrote a spec for what I wanted and pointed Antigravity at it. The result is Port79. As well as providing a library, there's also a small finger clone CLI, which can be run with python -m port79 (if it's installed as a library) or with port79 (if installed along with any command scripts).
To be clear: this isn't intended to be a serious finger command (like, why would anyone even need that?), it's just a tool within the library that can be used to do some testing within a development (v)environment.
At some point soon I'll be adding port79 as a dependency of Rogallo and adding finger as a "native protocol".