* support remapping of expired URLs similar to mailmap
(coordinate with git.git with this?)
-* POP3 server, since some webmail providers support external POP3:
- https://public-inbox.org/meta/20160411034104.GA7817@dcvr.yhbt.net/
- Perhaps make this depend solely the NNTP server and work as a proxy.
- Meaning users can run this without needing a full copy of the
- archives in git repositories.
-
-* HTTP, IMAP and NNTP proxy support. Allow us to be a frontend for
+* HTTP, IMAP, NNTP, POP3 proxy support. Allow us to be a frontend for
firewalled off (or Tor-exclusive) instances. The use case is
for offering a publicly accessible IP with a cheap VPS,
yet storing large amounts of data on computers without a
public IP behind a home Internet connection.
-* support HTTP(S) CONNECT proxying to NNTP for users with
+* support HTTP(S) CONNECT proxying to IMAP/NNTP/POP3 for users with
firewall problems
* DHT (distributed hash table) for mapping Message-IDs to various
archive locations to avoid SPOF.
* optional Cache::FastMmap support so production deployments won't
- need Varnish (Varnish doesn't protect NNTP or IMAP, either)
+ need Varnish (Varnish doesn't protect NNTP nor IMAP, either)
* dogfood and take advantage of new kernel APIs (while maintaining
portability to older Linux, free BSDs and maybe Hurd).
* Support more of RFC 3977 (NNTP)
Is there anything left for read-only support?
-* Combined "super server" for NNTP/HTTP/POP3/IMAP to reduce memory,
- process, and FD overhead
-
* Configurable linkification for per-inbox shorthands:
"$gmane/123456" could be configured to expand to the
appropriate link pointing to the gmane.io list archives,
* use REQUEST_URI properly for CGI / mod_perl2 compatibility
with Message-IDs which include '%' (done?)
-* more and better test cases (use git fast-import to speed up creation)
+* better test cases, make faster by reusing more setup
+ code across tests
-* large mbox/Maildir/MH/NNTP spool import (see PublicInbox::Import)
+* large mbox/Maildir/MH/NNTP spool import (in lei, but not
+ for public-facing inboxes)
+
+* MH import support (read-only, at least)
* Read-only WebDAV interface to the git repo so it can be mounted
via davfs2 or fusedav to avoid full clones.
* code repository integration (cgit: done, TODO: gitweb, etc...)
-* migration path to v2 without breaking v1 "git fetch" cronjobs
+* migration path to v2 (making it transparent for "git fetch"
+ may not be possible, but "public-inbox-fetch" will handle it)
* imperfect scraper importers for obfuscated list archives
(e.g. obfuscated Mailman stuff, Google Groups, etc...)
-* extend public-inbox-watch to support IMAP, NNTP
-
* improve performance and avoid head-of-line blocking on slow storage
(done for most git blob retrievals, Xapian needs work)
as extensions. If JMAP, it should have HTTP(S) analogues to
various IMAP extensions.
-* search across multiple inboxes, or admin-definable groups of inboxes
-
- This will require a new detached Xapian index that can be used in
- parallel with existing per-inbox indices. Using ->add_database
- with hundreds of shards is unusable in current Xapian as of
- August 2020 (acknowledged by Xapian upstream).
-
* scalability to tens/hundreds of thousands of inboxes
- - pagination for WwwListing
-
- inotify-based manifest.js.gz updates
- - process/FD reduction (needs to be slow-storage friendly)
-
...
-* command-line tool (similar to mairix/notmuch, but solver+git-aware)
-
-* consider removing doc_data from Xapian, redundant with over.sqlite3
- It's no longer read as of public-inbox 1.6.0, but still written for
- compatibility.
-
-* share "git cat-file --batch" processes across inboxes to avoid
- bumping into /proc/sys/fs/pipe-user-pages-* limits
+* lei - see %CMD in lib/PublicInbox/LEI.pm
+ (there's a truckload here..)
* make "git cat-file --batch" detect unlinked packfiles so we don't
have to restart processes (very long-term)
-* support searching based on `git-patch-id --stable` to improve
- bidirectional mapping of commits <=> emails
-
* linter to check validity of config file
* linter option and WWW endpoint to graph relationships and flows
(linkification is too expensive, as it requires mirroring)
* support UUCP addresses for legacy archives
+
+* support pipelining as an IMAP/NNTP client for -watch + lei
+
+* expose lei contents via read/write IMAP/JMAP server for personal use
+
+* git SHA-256 migration/coexistence path