-
-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add guppy:// v0.4 support #288
Conversation
On Monday, Nov 06, 2023 at 04:40:52 +1100, Dima Krasner ***@***.***> wrote:
Protocol is described in gemini://gemini.dimakrasner.com/guppy-v0.4.gmi (or
guppy://gemini.dimakrasner.com/guppy-v0.4.gmi).
It would be super nice to have it supported in Kristall, because without great
clients there won't be great servers.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
You can view, comment on, or merge this pull request online at:
#288
Commit Summary
• 75f9cb7 add ugly guppy:// v0.4 support
File Changes
(6 files)
• M src/browsertab.cpp (2)
• M src/dialogs/settingsdialog.ui (11)
• M src/kristall.pro (2)
• A src/protocols/guppyclient.cpp (179)
• A src/protocols/guppyclient.hpp (47)
• M src/protocolsetup.hpp (1)
Patch Links:
• https://github.com/MasterQ32/kristall/pull/288.patch
• https://github.com/MasterQ32/kristall/pull/288.diff
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.*Message ID:
***@***.***>
I think it's great and all that people are still trying to come up with
new small Internet protocols and whatnot, and I don't mean to be
offensive or belittle your efforts, but I honestly cannot see what
precisely Guppy brings to the table in terms of being new and
interesting and what unresolved problems it aims to resolve.
From what I understand, the protocol is essentially something inbetween
Gopher and Gemini. I think it's important to consider that these two
protocols are already very obscure (an average person has never heard of
these things) and as such a new protocol that has barely anything
interesting to offer is highly unlikely to be adopted by anyone.
This idea reminds me to some extent of Solderpunk's ramblings on a
hypothetical "Mercury" protocol in 2020, which aimed to be a
stripped-down/simplified, unencrypted form of Gemini that "could be a
thing" but of course didn't get anywhere as the supposed "benefits" are
not anything that most users are going to care about:
gemini://zaibatsu.circumlunar.space/~solderpunk/gemlog/the-mercury-protocol.gmi
I'm not opposed to implementing Guppy in Kristall per se, but I
personally believe that at this level of simplicity one is best off just
sticking with the more well-known Gopher and serving plain text and
gophermaps.
…-- Mike
|
Yes, this is pretty much Gemini but without TLS, without TCP and with less status codes.
With super weak or old hardware that can't do TLS with EC in reasonable time, your main options are Gopher and Spartan. The former has its well known limitations and requirements (no MIME types, word wrapping, ...), while the latter is limited to ASCII and adds some complexity in the client side because of the extra gemtext line type. Guppy is meant to be an unencrypted protocol that allows super fast transfer of small documents (no TCP or TLS handshake) and heavy code reuse in an existing Gemini client (same document format, subset of status codes).
I agree, although IMO this argument is more relevant in a tiny Gemini or Gopher client that's marketed as a tiny one (like gplaces, where Guppy support is in a side branch for now), and less relevant in one that uses Qt and has general quality of life features like configurable formatting (and happens to support >= 3 protocols already). In addition, the protocol implementation isn't that complex, and unlike Gopher, doesn't need its own URL parsing or document parsing code: a Gemini+Gopher client is way more "complex" than a Gemini+Guppy client. IMO the idea of a lightweight alternative to Gemini that doesn't suffer from the limitations of Gopher has merit, but this idea can't be tested in the real world (and become "well-known") without software that supports this protocol. |
Imho guppy seems like a nice addition, especially for small hardware. It's definitly in the defined goal of Kristall to support such protocols, so i'm happy to merge this. @dimkr Can you adjust the code to the rest of the Kristall codebase? Especially do no one-liner-ifs, but use at least line breaks here, better use curly braces, also do not use stacked assignments, but split them up into several lines. C++17 if-with-decl is fine |
Will do. I'm not a native C++ speaker, far from it, but I'll learn from existing code. |
@MasterQ32 Please take a second look |
@MasterQ32 Thank you so much! |
Is there already a list/index of guppy sites? |
Not yet, currently there's just |
@MasterQ32 Created guppy://guppy.000090000.xyz |
Protocol is described in gemini://gemini.dimakrasner.com/guppy-v0.4.gmi (or guppy://gemini.dimakrasner.com/guppy-v0.4.gmi).
It would be super nice to have it supported in Kristall, because without great clients there won't be great servers.