Ok, so, I understand how spartan works, but, I don't understand how to use spartan. Can I just use it on an HTTP browser or do I need a special browser?
2 years ago 路 馃憤 scientiac
@scientiac My understanding is that Spartan is intended to be even simpler than Gemini to implement from the ground up. In particular, getting TLS right can be difficult and thus most Gemini projects are going to have to rely on a TLS library of some kind. This, I believe, is the biggest reason behind its creation. Also, requiring TLS puts Gemini out of reach for some of the truly old machines out there, so Spartan can act as an "updated Gopher" for those.
I'll update the page to explain all that.
Titan exists to allow uploading data to Gemini sites, AFAICT. Since Gemini is set in stone now, adding optional sister protocols is the only way to "extend" it. 路 2 years ago
Yes, It was very helpful. Can you add a little more about how it works with 'gemini' too? Because, what is a purpose of making a whole different protocol when there is gemini which is similar as well as "secure" than It.
I guess Titan is similar to it as well right? And there also was another protocol similar to these which @枚ppen was working on. 路 2 years ago
@scientiac I've written a first draft of a Spartan page and posted it to my gemsite. Take a look and let me know if it clears things up at all:
gemini://lyk.so/small-internet/spartan/ 路 2 years ago
@comatoast I'm not the Lagrange dev, no. That'd be @skyjake. Spartan is quite similar to Gemini+Titan but without TLS, with fewer response codes, and with an extra "line type" in its gemtext markup.
The official Spartan specification is here:
gemini://spartan.mozz.us/specification.gmi 路 2 years ago
@lykso Thanks for the quick response and work, lol. Damn, you're fast. I appeciate that. Are you the lagrange dev? Is spartan like finger? Like does it more or less print things out? 路 2 years ago
@comatoast I've begun work on Spartan support, but it's proving a bit less straightforward than I'd thought it'd be. There's a whole custom framework underpinning everything, so I have to familiarize myself with that first before I can make any real progress.
In the meantime, my fzf-based Spartan client *kind of* works, so I'll post that... later. I want to first figure out why it can't seem to download any of the images in spartan://mozz.us/~mozz/files/ without corrupting them. I'm sure the answer will be enlightening, once I figure it out... 路 2 years ago
@scientiac Yeah, you can think of Spartan as a different "platform" in the same way that the Web, Gemini, and Gopher are all different "platforms." There's just a high degree of technical similarity and community overlap between Gemini and Spartan, so it makes sense to me to add Spartan support to multi-protocol browsers that already have Gemini support.
I'd be happy to help you understand the protocol better. I'll begin writing a primer on it, and if you'd be so kind as to ask questions about anything that doesn't make sense, maybe we can both clear up your confusion and help make the protocol more comprehensible to others as well. I'll post a link here later. 路 2 years ago
lgrange and ncgopher should just include spartan and finger in their capabilities. 路 2 years ago
I don't understand these sister protocols and how they work with gemini. I thought spartan to a different "platform" like gemini is so I made a partial mirror of my gemini capsule on it. I tried to understand it but I didn't get much info from the documentation as I couldn'd understand those technical terms used in it. I will be doing "the" research on it as I am trying to persue computer engineering as my career.
Or if you have a simpler documentation for me to understand please share it to me. 路 2 years ago
@lykso I use lagrange, fam. 路 2 years ago
@scientiac Titan, Finger, and Gopher, in fact. I use it myself. I'll start work just as soon as I finish exploring the use of fzf as a Spartan browser interface. 馃槀 路 2 years ago
@lykso How about on Lagrange? It already supports TITAN ,how about giving it another superpower? 路 2 years ago
What Gemini browser do you use? Maybe I can add Spartan support as a feature to it, if it's in a language I know. 路 2 years ago
If you have netcat installed, you can get the exact same output as sparty and the reference client with this line:
echo "mozz.us / 0" | nc mozz.us 300
Not great, but... it works. Haven't given any of the other clients a try yet. Even the Bash clients didn't work for you? Laconia has a weird quirk where it won't retrieve anything if you don't give it a path (e.g., "./laconia -u mozz.us" doesn't work but "./laconia -u mozz.us/" does), and it doesn't print anything if you don't give it a flag. Bollox seems to work fine for me. What errors are you seeing? 路 2 years ago
TBH, the output of the sparty client looks identical to the output of the reference client in my first reply. FWIW though, I was able to make sparty work by editing the __main__.py file referenced in the error, changing "request" on line 44 to "sparty.request". 路 2 years ago
Wow ok out of all of those the python client is the only one I can seem to get working and it's still pretty confusing can some one maybe help me figure out how to pilot this thing? Currently i'm trying to requests spartan pages. My Interface looks like this: sparty -u spartan://mozz.us but it keeps giving me erros. Help? 路 2 years ago
And hidden away on spartan://mozz.us/software.gmi is a list of Spartan clients, partially reproduced here (skipping the ones I already mentioned):
https://alexschroeder.ch/cgit/phoebe/tree/script/spartan A test client (perl)
https://notabug.org/tinyrabbit/sparty Sparty - A CLI Client for the Spartan Protocol (python)
https://tildegit.org/g1n/laconia Laconia - Simple spartan protocol client (bash)
https://git.sr.ht/~radiocane/bollux Bollux (fork) - a bash Gemini client (bash)
https://tildegit.org/hedy/sparte Sparte - CLI spartan client (go)
https://git.sr.ht/~hedy/gelim gelim - a minimalist line-mode gemini client (go) 路 2 years ago
You need a special browser. Most Gemini browsers don't seem to support it at the moment, but there's a reference client in Python on the protocol's gemsite:
gemini://spartan.mozz.us/spartan_client.py
Searching https://github.com/kr1sp1n/awesome-gemini also turned up a Python-based Gemini client that supports Spartan as well:
https://gitlab.com/armen138/gerbil 路 2 years ago