Zebra - a New Gemini Browser

Gemini is a new protocol for the Internet. It aims to fit a niche in between Gopher and HTML, being more powerful than Gopher, but intentionally more constrained than HTML. Gemini harkens back to the early web, and if you enjoy text-based, non-commercial web pages of the type that were once common, you may enjoy browsing Gemini capsules with Zebra.

Zebra was originally named Titan, but there was already a Gemini-related project with that name. It has now been renamed after its monochrome graphics, despite the possibility that I might add more colors to its palette in the future.

Features

Development has involved much browsing of the Gemini space, and that has guided the features. In practice, this has meant prioritizing some browsing features over implementing the rest of the protocol. Remaining sections to implement include:

In addition, user-entered bookmarks are coming in a future update; a few hard-coded bookmarks for those of you new to Gemini are already included.

Screenshots


Zebra running on Windows 8


Zebra running on macOS High Sierra


Zebra running on Solaris 11.3

Download

Zebra has both a general, cross-platform binary for when you already have Java installed, and operating-specific binaries for four operating systems, which include Java. Each of the operating system specific builds has an readme that notes how to start Zebra on that operating system. The links in this section are perma-links to the latest version, which is currently 0.50.

You can also build the project from its sources using Java and Maven; see the "Code" section below. The binaries are provided as a convenience for those who are not Java developers.

Cross-Platform Binary

If you already have Java installed, this is a good option, as it is by far the smallest download (33 KB). To check if you have Java installed, open a terminal and run:

java -version

The output may vary depending on your version of Java, but if the version it prints out is greater than or equal to 1.7, then you can use this binary. In that case, download it to a folder on your computer, open a terminal to that folder, and run:

java -jar Zebra.jar

The cross-platform binary can also be used as a drop-in upgrade for older versions when new releases are made; simply download the cross-platform binary and overwrite the existing Zebra.jar in your local Zebra folder.

Download the cross-platform binary here (33 KB).

Windows

The Windows build will work on Windows XP and later, on both 32-bit (x86) and x64 processors. Itanium is not supported.

You can download the Windows build here (27 MB). It can be decompressed with 7-Zip (recommended; free) or WinRAR.

You can run the Windows version either from the build-in command-prompt, or with third-party ones such as Cmder.

Mac

The Mac build will work on OS X 10.8 Mountain Lion and later. It runs on Intel processors, but will not run on future ARM Macs (although the cross-platform binary might run on them).

You can download the Mac build here (36 MB).

If you wish to run on OS X 10.7 Lion, this should be possible by installing Java 1.7 yourself, and then running the cross-platform binary.

Linux

The Linux build has been tested on Ubuntu 18.04 Bionic Beaver, but may run on older systems and should work on newer ones. It will only run on Intel x64 processors (32-bit is not supported).

You can download the Linux build here (38 MB).

Solaris

The Solaris build has been tested on Solaris 11.3, but may run on older systems and should work on newer ones. It will only run on Intel x64 processors (SPARC is not supported).

You can download the Linux build here (47 MB).

Other/Future

Other operating systems that can run Java 1.7 are candidates for platform-specific releases; the BSD descendants in particular likely fall in that bucket. If you can run the cross-platform binary version, and are interested in helping set up a platform-specific release for BSD or any other operating system, get in contact.

Some older operating systems do not support Java 1.7, which is the minimum version that includes TLS 1.2, which is required by Gemini, and is thus a limiting factor in support. While I have some ideas about how to work around this, for now support for systems other than those mentioned previously should be considered unlikely.

First Steps

It is advisable to go into the Settings (s[enter]) and set your terminal size so that Zebra takes up the full width and especially height of the terminal. In the future, Zebra may be able to detect that automatically, but for now it needs to be set manually. However, Zebra will remember your settings when you launch it in the future.

If you are new to Gemini, I recommend viewing the main Circumlunar Space site first, with either the command

b[enter]
to open bookmarks followed by
1[enter]
to load the first bookmark; or the
L[enter]
command to load a URL, followed by
gemini.circumlunar.space[enter]
to load the site directly.

Project Goals/Directions

Zebra came to be after browsing the https version of Circumlunar Space, and at the time the list of browsers on that site did not include one that was easy to get up and running on Windows, though this has since changed. If I had been sensible, I would have fired up my laptop with a Linux install, or a virtual machine, and started browsing on Linux. Instead, I saw the spec document, browsed it, thought, "this doesn't look too difficult" and started coding. A very minimal implementation was working by the end of the first night.

Since then, learning about how to build a rich console-based UI has proven to be just as interesting as implementing the Gemini protocol, and reading various Gemini capsules and Gemlogs has proved a satisfying distraction from adding more features (though also a good indicator of what was most sorely missing). Thus, one of the main goals is to learn something new. But it also has been pretty neat being able to traverse the Information Superhighway using software I wrote; with http the scope was too great to even consider that.

Current features near the top of the list include:

There is a SourceHut todo tracker located at https://todo.sr.ht/~adj/Zebra that tracks both fixes and feature ideas for Zebra, and you can browse it for a more complete list.

Code

The code lives at the project's SourceHut project page. It is MIT licensed.

Gemini Capsule

You can visit my Gemini capsule at gemini://ajtjp.com. It is still very new, and there is still much more content on my HTTPS and Gopher pages. I expect to publish updates about Zebra on my Gemini capsule, but it was an intentional decision to put this page on the https site so that those who don't already have a Gemini browser can easily access it.

Contact

Contact information is included in the Readme.txt files included in the platform releases, and there are also mailing lists you can subscribe to on the SourceHut page.

Alternatives

Zebra may or may not be your cup of tea, and that's okay, as there are a wealth of Gemini browsers. I've listed a few of them below, as well as a Gemini link to a page with links to quite a few more.

Another Windows-focused Gemini browser, but one with a graphical user interface, is Twin Peaks. I've taken it for a spin, and it's a good option if you prefer a mouse-driven approach.

If you are on Linux, Unix, or OS X, Bombadillo is another terminal-based browser that supports Gemini. It appears to be similar, and as it has been around longer, is likely more polished than Zebra. I will likely try it out at some point, but for now want to see what ideas I come up with while I have less knowledge of how another vim-inspired browser has done.

Castor is a GUI-based browser for Gemini, Gopher, and Finger, build in Rust. It has instructions for running it on Ubuntu, Mac, and now Windows as well.

There is also an extensive list of Gemini software, including browsers, at this Gemini site, but you need a Gemini browser to be able to view that page.