What is required to be IRI compliant?

On Mon Dec 28, 2020 at 12:15 PM CET, Solene Rapenne wrote:

> Requests such as the following are working well:
>
> - gemini://ho?t/? ?.gmi
> - gemini://?//??.gmi
>
> Honestly, I am very surprised it works

Me too!  Are you using a third party library to parse URIs/IRIs, or did
you implement it yourself?  People have acted like there is no easy
availability of reliable libraries for this kind of thing in C.  If that
is false, it would be very good to know.

To be fair, for a server, in addition to being able to parse the request
IRI, there is also possibly the need to normalise it, e.g. the
server's idea of its domain name might involve two separate characters
(a basic vowel plus an accent symbol, say) while the request's version
uses a single combined character (or the other way around).  We might
spec that one form is required, but robustness would require checking.
It might be that *this* is the really hard requirement, rather than
simply parsing.

(servers seem to get off lighter than clients, as they don't e.g. need
to do DNS lookups or resolve relative URLs - which, by the way, seems to
be the correct terminology, not "absolutise" as I've confused people
with earlier)

Cheers,
Solderpunk

is something people have acteThe impression I've received from other people here is that
parsing an IRI in C is prohibitively difficult., in my code
> everything are simple char arrays (in C), but it does.
>
> Are there other specifics handling required for being
> IRI compliant? I'm not sure I understood exactly what
> it means.

---

Previous in thread (2 of 16): 🗣️ Petite Abeille (petite.abeille (a) gmail.com)

Next in thread (4 of 16): 🗣️ Petite Abeille (petite.abeille (a) gmail.com)

View entire thread.