-- Leo's gemini proxy
-- Connecting to alexey.shpakovsky.ru:1965...
-- Connected
-- Sending request
-- Meta line: 20 text/gemini
Like if there were not enough Gemini clients or web proxies around... So I created one more! Want to have a look?
Subtitle: I am bad at names...
I enjoyed using two graphical Gemini clients: Kristall and Lagrange. But none of them ticks all boxes of how I'd like _a perfect_ Gemini client to look:
cross-protocol (Gopher/Gemini/Spartan/Titan)
editing pages via Ctrl-E like in Lagrange
auto dark color theme generation like in Kristall (sorry @skyjake but I just don't agree that the yellow-ish theme Lagrange generated for my capsule is "beautiful". Kristall's blue-sh background is much nicer IMO!)
tabs, find-in-page, history like in a web browser
input prompt which doesn't block everything else
favicons in tabs
hyphenations in text
hackable (written in language I can easy understand and edit)
I spent some time investigating Tkinter package for Python and features of its TextWidget, but then realized that most of effort will go into recreating a "browser-like" behavior (tabs, find-in-page, cache, history search), and decided to implement it in Javascript/HTML instead, and use the actual browser for tabs, find-in-page, etc.
Hence, it's not an actual "client" binary application which you install on your Android/iPhone/Linux/Mac/Windows, but a gemini webproxy. Unlike other proxies, it relies more heavily on frontend Javascript side, where backend performs only basic translation of HTTP requests to gemini/gopher/spartan/titan ones. Saying that, it doesn't use any fancy Javascript libraries like React, Redux, Vue, jQuery, or what's the trendy one is today - primarily due to my lack of knowledge, secondary due to me being member of 512kb.club (the frontend is under 50Kb, but I'm not aware of such club).
gopher, gemini, spartan, titan protocol support to varying degree
hyphenations!
favicons
"up" and "top" (root of the capsule) buttons
`----` horizontal line / "thematic separator" support (sorry @solderpunk, but I've seen it used "in the wild" too much already)
tabs, history, cache are provided by your browser
works as "proxy" for a single gemini capsule
only most common gopher selectors supported (0,1,7,I,h)
spartan input not supported
error messages not explained properly
finger protocol
proper input for spartan
better handling of "fake address bar" input
force cache of favicons (so F5 wouldn't refetch them)
inline images
Note that currently certificates are not checked in any way, and client certificates are also not implemented.
At the moment, only latest Firefox and Chrome are tested. More browsers are possible to add if someone is going to use it.
If you have a web browser, you can use it to browse my capsule from the web:
Note that connection to other capsules are not enabled on that instance - it's a one-capsule proxy, much like flounder.online.
You can get the source code on github and try installing it yourself:
Did the world need another Gemini proxy/browser?
Privacy note: voting saves your IP address. Voting for the second time overwrites your previous vote. Voting through _other_ web proxies hides your IP address and counts against that proxy IP address (so there's approximately one vote shared among all users of that proxy). Voting through _my_ web proxy preserves your original IP address (the vote is only yours, your IP is saved with it).
----
Also I would like to thank @pr1ba for encouraging words in this difficult times (in Russian):
-- Response ended
-- Page fetched on Tue May 21 23:52:50 2024