Clarification of current spec

Sean Conner sean at conman.org
Thu Sep 19 06:45:39 BST 2019
It was thus said that the Great Brian Evans once stated:
> Hi all,
> 
> I have finally gotten around to implementing a client. I had been
> rebuilding Bombadillo (my gopher client) and so I have added preliminary
> gemini support to it. That consists of single digit response code
> awareness. Support for status 2 and 3 and errors shown in a sensible way
> for 4 - 6. I have not implemented 1 yet.
> 
> While building all of this out I have been using existing servers for
> testing. It seems that there is a good amount of variation, particularly
> concerning tabs and spaces.
> 
> I am wanting clarity on whether this is correct:
> <two digit status number><space><meta>
> 
> or this is correct:
> <two digit status number><tab><meta>

  Hmmm.  I tested the Gemini servers I am aware of [1], and all but one use

	<two digit status><tab><meta>

  The one that doesn't is the server at gemini://zaibatsu.circumlunar.space/,
run by solderpunk, creator of the Gemini protocol, so it's hard to say who
is correct---him, or the rest of the implementations.  The spec is ... not
detailed enough (for my liking) to resolve this.  Your best bet for now is
to support both space and tab.

> The same question applies to gemini docs. My understanding was that this
> is correct:
> 
> <magic string><url><space><...text>
> 
> However, I am seeing tab instead of space in the wild.

  The spec (at the address you listed below) says this:

	1.3.5.2 Link syntax

	Link lines have the following format:

	=>[<whitespace>]<URL>[<whitespace><USER-FRIENDLY LINK NAME>]<CR><LF>

	where:

	* <whitespace> is any *non-zero number* of consecutive spaces or tabs
	* Square brackets indicate that the enclosed content is optional.	
	* <URL> is a URL, which may be absolute or relative.  If the URL
	  does not include a scheme, a scheme of gemini:// is implied.

	(emphasis added)

  So whitespace here can include both spaces and tabs.

> Is this just a simple matter of different servers conforming to different
> stages of the development spec? Should my client support both? It is
> certainly doable, but a little annoying.

> Lastly, is the spec as written at:
> gopher://zaibatsu.circumlunar.space:70/0/~solderpunk/gemini/spec-spec.txt
> being kept up to date as things get decided? Or should that document be
> considered out of date at this point pending a new writeup?

  It is marked as a work in progress (WIP) so I assume it's kept up to date.
Having written the first Gemini server, I've noticed changes as the protocol
was being hashed out.

  -spc

[1]	Listed at gemini://gemini.conman.org/


Archive home | About this archive