Comment by 🦦 ainent
Re: "So theoretically, if a Gemini app had a well defined API,…"
@zzo38
Last I tested, TLS 1.2 worked but I added a note to test it again to my backlog. In the meantime, here’s the text of the post:
# Native Applications over Gemini
Disclaimer: This is not an official proposal nor is it an attempt at extending the protocol. Just throwing some thoughts out there.
Lately I've been pondering the idea of native applications (GUI, TUI, platform irrelevant) over Gemini. They could look and feel identically to a native application, only the backend would be accessed over gemini:// instead of http://. Gemini can serve any file type, so the responses could have a MIME type of application/json or application/xml, etc. This would allow for more customized applications than simply dynamic text/gemini via a browser, with all the benefits of Gemini. The downside would be less room for user input, because of the limit on Gemini URL lengths, but that could be mitigated with the Titan protocol.
Has anyone else thought of this, or implemented anything?
Apr 08 · 4 weeks ago
7 Later Comments ↓
What you describe would work (like it would with HTTP, except the different headers); you might have a different URL for the that purpose (so that Gemini text can still be accessed as well), and multiple implementations would be possible (so it should be documented). (Also it is my opinion that DER is a generally better format compared with JSON or XML, although you could use any format.) (Also: Scorpion protocol has a "I" request type, and for some uses it would be helpful, such as for two-way streaming. Furthermore, if you need user authentication, then regardless of which protocol you use, using X.509 client certificates has many benefits, depending on what your requirements are.)
although you could use any format.
Yeah the format is an implementation detail as Gemini supports arbitrary MIME types.
Also it is my opinion that DER is a generally better format compared with JSON or XML
Could you elaborate? My experience with DER is quite limited. Are they usable for non-certificates?
Yes; DER can be used for many kinds of structured data, and not only for X.509 certificates. If my nonstandard types are added, then its data types is a superset of that of JSON (in this case, the only nonstandard type used is the key/value list type; the rest of the JSON types are standard ASN.1 types). I wrote a implementation in C (although other implementations exist, in C and other programming languages, but many of the implementations have some flaws in my opinion). My "Super ZZ Zero" game engine uses DER in many parts, and so does some other things I had been working on.
🌆 skyjake [mod...] · Apr 08 at 05:53:
@zzo38 I'm curious: why would you use DER, with nonstandard extensions, when there's the well-established BSON? The latter seems a more pragmatic choice for structured binary data.
...and if we're talking established standards, why not CBOR?
One advantage of DER is consistent framing. Another is that I think the data types are better; there is a OID type and relative OID type, as well as octet string and bit string, and unlimited length of integers, and it does not insist that you use Unicode. BSON, CBOR, etc try to make it better but end up not doing so and are inferior. Note that you do not need to use all of the types, nor need to implement all of them even if dealing with a file that uses them.
@norayr
— https://github.com/michael-lazar/jetforce/blob/master/examples/chatroom.py
Original Post
So theoretically, if a Gemini app had a well defined API, one could make a phone app to interface with just that Gemini app/capsule, correct? So for instance, a graphics based UI on your phone that pulled from a BBS/Bubble API. It goes against the spirit of Gemini I think, but I just had the thought in my head.