3 # Copyright 2019-2021 all contributors <meta@public-inbox.org>
4 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
7 Relevant standards for public-inbox users and hackers
8 -----------------------------------------------------
10 Non-exhaustive list of standards public-inbox software attempts or
11 intends to implement. This list is intended to be a quick reference
12 for hackers and users.
14 Given the goals of interoperability and accessibility; strict
15 conformance to standards is not always possible, but rather
16 best-effort taking into account real-world cases. In particular,
17 "obsolete" standards remain relevant as long as clients and
28 1036 => 'Standard for Interchange of USENET Messages',
29 5536 => 'Netnews Article Format',
30 5537 => 'Netnews Architecture and Protocols',
31 1738 => 'Uniform resource locators',
32 5092 => 'IMAP URL scheme',
33 5538 => 'NNTP URI schemes',
34 6048 => 'NNTP additions to LIST command (TODO)',
35 8054 => 'NNTP compression',
38 2980 => 'NNTP extensions (obsolete, but NOT irrelevant)',
39 4287 => 'Atom syndication',
40 4685 => 'Atom threading extensions',
41 2919 => 'List-Id mail header',
42 5064 => 'Archived-At mail header',
43 3986 => 'URI escaping',
44 1521 => 'MIME extensions',
45 2616 => 'HTTP/1.1 (newer updates should apply, too)',
46 7230 => 'HTTP/1.1 message syntax and routing',
47 7231 => 'HTTP/1.1 semantics and content',
48 822 => 'Internet message format (1982)',
49 2822 => 'Internet message format (2001)',
50 5322 => 'Internet message format (2008)',
53 2683 => 'IMAP4 Implementation Recommendations',
54 # 5032 = 'WITHIN search extension for IMAP',
55 4978 => 'IMAP COMPRESS Extension',
56 # 5182 = 'IMAP Extension for Referencing the Last SEARCH Result',
57 # 5256 => 'IMAP SORT and THREAD extensions',
58 # 5738 => 'IMAP Support for UTF-8',
59 # 8474 => 'IMAP Extension for Object Identifiers',
61 # 8620 => JSON Meta Application Protocol (JMAP)
62 # 8621 => JSON Meta Application Protocol (JMAP) for Mail
65 # TODO: flesh this out
69 my @rfc_urls = qw(tools.ietf.org/html/rfc%d
70 www.rfc-editor.org/errata_search.php?rfc=%d);
72 for (my $i = 0; $i < $#$rfcs;) {
73 my $num = $rfcs->[$i++];
74 my $txt = $rfcs->[$i++];
75 print "rfc$num\t- $txt\n";
77 printf "\thttps://$_\n", $num foreach @rfc_urls;
82 Other relevant documentation
83 ----------------------------
85 * IMAP capabilities registry and response codes:
86 https://www.iana.org/assignments/imap-capabilities
87 https://www.iana.org/assignments/imap-response-codes
89 * Documentation/technical/http-protocol.txt in git source code:
90 https://public-inbox.org/git/9c5b6f0fac/s
92 * Various mbox formats (we currently emit and parse mboxrd)
93 https://en.wikipedia.org/wiki/Mbox
95 * PSGI/Plack specifications (as long as our web frontend uses Perl5)
96 git clone https://github.com/plack/psgi-specs.git
101 Copyright (C) 2019-2020 all contributors <meta@public-inbox.org>
102 License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>