JGopher is a gopher client for Java (17) which is designed to be lightweight, portable, and adhere to the core principles which makes gopher, gopher. The current development branch contains the new JGopher 1.0 codebase which is a complete rewrite of the older codebase used until version 0.8.1. The older codebase was getting very old at this point, and considering I started work on JGopher when I was bored during the pandemic, I thought it was high time to wipe the slate clean and start again
The icons provided, like in the older versions of JGopher, are the public domain icons provided by the Apache 2 web server. They remain in the public domain. I claim no credit over them.
The main difference comes in the view. Rather than going for the old "pseudo-hypertext" look that JGopher did previously (where it tried way too hard to be a browser), it now uses a classic file explorer look, where opening selectors opens new windows displaying the listing. While this may take some getting used to, it allows the codebase to be much simpler and removes the need for complicated history management.
Aside from this, JGopher also got a major rework in how components talk to graphical layers. In the old codebase, this was all mashed together into an unmaintainable mess. In the new codebase, a somewhat MVC pattern is used which allows the drawing code to be much more portable. There is a barely working AWT port in the codebase that I may flesh out into a proper port sometime in the future.
Some features (mainly hURL http links) are not supported in the new codebase. This is partially an ideological decision since I personally see them as more of a hack than a genuine protocol feature. The files will simply be prompted as a download for an HTML file (with the URL of the page being the default file name when saving).
Like with JGopher previously, the only dependencies are in the standard
distribution of Java. Simply type mvn compile and mvn package to get an
executable jar file which will run JGopher.