IDN with Gemini?

Côme Chilliet come at chilliet.eu
Mon Dec 7 23:40:43 GMT 2020


Le lundi 7 décembre 2020, 19:00:02 CET colecmac at protonmail.com a écrit :
> Côme's reply here asserts that a client would never need to parse
> IRIs, and so there's no added complexity. Just copy the IRI from the
> link line, do DNS, and send the IRI to the server. But this is not
> true, a client would need to do parsing.
> 
> What parsing would a client have to do?
> 
> - Extracting the domain, so it can be punycoded for DNS lookups

True, thanks for pointing that out.

> - Resolving relative IRIs would require parsing the current IRI,
>    and the provided one, and combining them. You cannot just copy it
>    to make the request.

Also true, but it should be the same value that is extracted for DNS.

> - When receiving an input status code on a page that already has a
>    query string, the IRI has to be parsed to detect that there is a
>    query string, and then remove and replace it with the new input of
>    the user.

Good to know, I did not think of query string situation.

> - Extracting the path to get a name for downloading files
> - Etc.
> 
> There are many reasons why a client would need to be able to parse an
> IRI, the relative link one and DNS one being the most important.
> 
> This would then require IRI parsing libraries, and as I have explained
> earlier, these don't exist in likely many programming languages, and
> when they do, they are third-party.

From what you said on irc, the situation is different between URI and IRI because most languages have URI parsing either in their stdlib or in a well tested known library.
But, if no project use IRI, of course no one will write a library for it, this is a chicken and egg situation here.

Also, for the purpose of a client, it seems to me the parsing needed (domain and query extraction) is only to search for the first "/" and the last "?", and some minor tweaks on the scheme maybe (which does not contain unicode, I will leave the scheme alone, promise).

Note: Just tried gemini://gemini.circumlunar.space/%64%6f%63%73/%66%61%71%2e%67%6d%69 in lagrange, it does work.

Côme




More information about the Gemini mailing list