user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
blob 8fc852c722bae5e48d6bcd3686ee29f7ea442662 2574 bytes (raw)
name: Documentation/standards.perl 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
 
#!/usr/bin/perl -w
use strict;
# Copyright 2019-2020 all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>

print <<EOF;
Relevant standards for public-inbox users and hackers
-----------------------------------------------------

Non-exhaustive list of standards public-inbox software attempts or
intends to implement.  This list is intended to be a quick reference
for hackers and users.

Given the goals of interoperability and accessibility; strict
conformance to standards is not always possible, but rather
best-effort taking into account real-world cases.  In particular,
"obsolete" standards remain relevant as long as clients and
data exists.

IETF RFCs
---------

EOF

my $rfcs = [
	3977 => 'NNTP',
	977 => 'NNTP (old)',
	6048 => 'NNTP additions to LIST command (TODO)',
	8054 => 'NNTP compression',
	4642 => 'NNTP TLS',
	8143 => 'NNTP TLS',
	2980 => 'NNTP extensions (obsolete, but NOT irrelevant)',
	4287 => 'Atom syndication',
	4685 => 'Atom threading extensions',
	2919 => 'List-Id mail header',
	5064 => 'Archived-At mail header',
	3986 => 'URI escaping',
	1521 => 'MIME extensions',
	2616 => 'HTTP/1.1 (newer updates should apply, too)',
	7230 => 'HTTP/1.1 message syntax and routing',
	7231 => 'HTTP/1.1 semantics and content',
	822 => 'Internet message format (1982)',
	2822 => 'Internet message format (2001)',
	5322 => 'Internet message format (2008)',
	3501 => 'IMAP4rev1',
	2177 => 'IMAP IDLE',
	# 5032 = 'WITHIN search extension for IMAP',
	4978 => 'IMAP COMPRESS Extension',
	# 5182 = 'IMAP Extension for Referencing the Last SEARCH Result',
	# 5738 =>  'IMAP Support for UTF-8',
	# 8474 => 'IMAP Extension for Object Identifiers',
	# ...

	# TODO: flesh this out

];

my @rfc_urls = qw(tools.ietf.org/html/rfc%d
		  www.rfc-editor.org/errata_search.php?rfc=%d);

for (my $i = 0; $i < $#$rfcs;) {
	my $num = $rfcs->[$i++];
	my $txt = $rfcs->[$i++];
	print "rfc$num\t- $txt\n";

	printf "\thttps://$_\n", $num foreach @rfc_urls;
	print "\n";
}

print <<'EOF'
Other relevant documentation
----------------------------

* Documentation/technical/http-protocol.txt in git source code:
  https://public-inbox.org/git/9c5b6f0fac/s

* Various mbox formats (we currently emit and parse mboxrd)
  https://en.wikipedia.org/wiki/Mbox

* PSGI/Plack specifications (as long as our web frontend uses Perl5)
  git clone https://github.com/plack/psgi-specs.git

Copyright
---------

Copyright (C) 2019-2020 all contributors <meta@public-inbox.org>
License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
EOF

debug log:

solving 8fc852c722b ...
found 8fc852c722b in https://80x24.org/public-inbox.git

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).