Misfin Proposal, draft e82fa2e9-a8e9-44f5-924c-77301643f5c2

MisfinC Proposal (clseibold), take that as reference. As I might take long to update this.

This proposal is based upon Misfin A and Misfin B by lem.

Misfin B (at the time of writing)

Clients and servers should differentiate between older Misfin requests and this proposal's request from the existence of the Content-Length, which is required in this proposal.

This means that clients must now use the content-length format, but servers must accept the old method's email receiving capabilities, whilst still accepting messages in the old form using the new content-length.

The request for this draft would look like the following:

misfin://<MAILBOX>@<HOSTNAME><TAB><CONTENT-LENGTH><SPACE><MESSAGE><CR><LF>

The MAILBOX, HOSTNAME, and MESSAGE definitions are inherited from Misfin B, with the following modifications:

In the mailbox and hostname section, there is a explicit ban of the use of commas (',')

The message will no longer include linetype prefixes for the metadata (the "<",":" and "@" characters), instead they will be sent in the following order: sender, receiver, and timestamp.

In order to make it possible to convey the information about message forwarding, the addresses of forwarders or mailing lists will be appended to the sender list.

In the sender and receiver they can in some cases be lists, such as when a message is forwarded or sent to different people, so they are separated by ", ", and if a host receives ',' as delimiter, it should add a space, such that the data is easier to parse later on.

The Content-Length must be in ASCII, decimal form, and the maximum is 16384 bytes, which is equal to 16Kib, it only applies to the content, not to the metadata of a message.

Anything above the maximum or in other way not correct shall return a BAD REQUEST status code (59).

Misfin clients and servers shall only parse the metadata and send the rest of the message to the appropriate gemini parser, but shall accept requests to parse the full message, and only collect the data they use.

Please send me any suggestions on IRC, via Misfin(B), via email or via some other mean.

You might like to join ##misfin in Libera.

Martin's pretty helpfull notes.