What is required to be IRI compliant?

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

> the code doesn't check anything, it only serves what is requested [1].

Okay, I just read the complete Vger code, and see that the URL handling
is indeed pretty minimal.  E.g. domain-based virtual hosting would break
if a request included an explicit port (which would be interpreted as
part of the hostname), and filenames with spaces in them cannot be
served (because the %20 encoding of the space character in the URL path
is not reversed by the server), and queries (which make no sense for
static content and should be ignored) are not separated from the path.

I don't mean this as criticism, obviously for hobby servers something
like this is perfectly workable.  I guess the concern is that we ideally
want even "production grade" servers to be quite easy to write.  Such a
server would need to handle all the things above and more.  Few people
want to do all that parsing by hand, so would use a library, and because
URI parsing is so widely used the theory is it's never too hard to find
a library for your favourite language with your favourite license.  This
is why there are already plenty of production grade (or close to it)
servers and clients out there.  But apparently many URI parsing
libraries have never been upgraded to also do IRIs.  I had hoped Vger's
surprising IRI compatibility meant there was easily available C code for
doing this after all, but it seems not.

So, while this is still very happy news, it's no rebuttal of the
argument that switching to IRIs would make writing a solid server in C
(or other languages without extensive and modern standard libraries, C
is not really special here) into a considerably more difficult
undertaking.

Cheers,
Solderpunk

---

Previous in thread (9 of 16): 🗣️ Philip Linde (linde.philip (a) gmail.com)

Next in thread (11 of 16): 🗣️ Solene Rapenne (solene (a) perso.pw)

View entire thread.