Adventures in Spartan-land

I am a big proponent of the Spartan Protocol. Now that Lagrange supports it directly, it is a real thing. A whole new unpopulated part of the galaxy to explore and fill with your stuff!

gemini://spartan.mozz.us/

gemini://freeshell.de/gemlog/2022-02-25_Roundup.gmi

Granted, there is not much there yet!

TLDR: Some opinionated technical babble about the Spartan protocol follows.

Why bother?

Spartan is largely Gemini without TLS. As some of us here think, TLS is a largely unnecessary measure of fake security, which, when combined with self-signed certificates and TOFU (Trust-On-First-Use), is pretty much no security at all. A non-solution to a non-problem. In fact, it may convince non-technical users that there is more privacy and authentication than there really is. I won't bother reiterating pros and cons of TLS, as it is a part of Gemini and provides some protections from someone modifying your gemlog in transit -- if that is your concern...

For retrocomputing or embedded devices, choosing Spartan is a no-brainer. TLS requires some heavyish computation, while Spartan does not.

Spartan is plain text (most likely, unencrypted gemfiles). No client certificates. No server certificates. Built-in unlimited upload capability. And an extra kind of a link designed specifically for input fields!

Spartan's Input Field is much better than Gemini input.

The =: input field is a great thing. If you want input in Gemini, you have to do a jig:

As you can see, this is a kluge at best. A royal pain, and not really adequate for many situations, requiring a whole other protocol for uploading data.

Spartan handles it like this:

Spartan sure is a lot less effort, and avoids an extra round trip (with no TLS handshakes as a bonus).

Built-in upload

Spartan requests to the server can just send data. No need for a separate protocol, or wierdly, an HTTP site for submitting your gemtexts. You can send and receive data in a single request.

The server will be notified of the exact size of uploaded data, avoiding some ambiguities that Gemini servers have to deal with (when is it safe to close the socket?)

Integration

I am looking forward to adding Spartan to my toolbox. And blabbing about it here. This is not really a competition - now that both Gemini and Spartan are a part of Lagrange - and I hope other browsers will follow - I choose to view these as complementary protocols.

index

home