Archive Feeds Extension
At twtxt.net Archive Feeds were invented as an extension to the original Twtxt File Format Specification.
Purpose
Feeds grow over time. To avoid feeds of virtually unlimited size, pagination can be used to move old twts to a different (partial) feed. Clients can then choose to retrieve only some of those feeds.
Main Feed and Archived Feeds
There is exactly one main feed, which is the same as the traditional twtxt.txt file. This feed keeps growing by adding new twts at the end (this differs from the original twtxt spec, which allowed adding new twts anywhere in the feed). Deletion or editing of twts anywhere in the feed is allowed.
Once the main feed is “full”, some or all of its twts can be moved to a different feed: an archived feed. There can be any number of archived feeds. Once they are made public, they are supposed to be left alone and won’t receive further updates. Deletion or editing is still allowed, but feed authors should not expect clients to retrieve archived feeds on a regular basis (or at all). When moving twts to an archived feed, their relative order should be retained. A twt should only appear in one feed, either the main feed or an archived feed, but not in both.
A feed’s author decides when a feed is “full” and should be archived. For example, this can be based on the number of twts in the feed or it can be based on date ranges.
The main feed and all archived feeds form a linked list using the metadata field described below.
Format
The main feed can contain a metadata field
called prev
which points to the URL of an archived feed (i.e., it
contains older twts):
# url = https://example.com/twtxt.txt
# url = gopher://example.com/0/twtxt.txt
# nick = cathy
# prev = kpw257a twtxt-2021-10-18.txt
The file names of archived feeds are implementation specific and don’t carry special meaning.
Archived feeds can contain another prev
field to point to yet
another archived feed.
The first value of prev
is the twt hash of
the last twt in that feed. It is provided as a hint for clients.
The second value of prev
is a name relative to the base directory of
the feed’s URL in url
(more specifically, in the URL that the client
used to retrieve the feed). In the example above, prev
would evaluate
to the full URL https://example.com/twtxt-2021-10-18.txt for HTTPS and
<gopher://example.com/0/twtxt-2021-10-18.txt> for Gopher.
For all feeds (main and archived), the url
fields of the main feed
shall be used for twt hashing. (There can be
multiple url
fields in the main feed, see the page metadata
extension on how to select the correct one.)