Measured on 2026-10-15: the feed list and item lists went out uncompressed at over 100 KB; ipx read 2.6 GB of feed bodies a day and the directory 3.9 GB. - ipx-web compresses with zstd or gzip, leaving out /api/events, which a compressor would hold back, and /media (#239). - A body identical to the last one (SHA-256 in feeds.body_hash) is taken as a 304, unless something is missing a read would fill or the check is forced; and a feed without a schedule of its own whose body has been the same waits a twelfth of that, up to four hours, beside the failure backoff (#242). 35 Patreon show feeds sent ~300 KB each hourly, about 250 MB a day. - The directory checks each feed every twelve hours, not six (#243). - reqwest accepts brotli and zstd too (#244). #240 (cache the feed list's counts) is left open: at production's size on the test Postgres that count takes 12 ms and All Subscriptions 32 ms, against 366 and 300 ms in production, so the cause is production's database, not the query (#241). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.7 KiB
2.7 KiB
Changelog: ipx-directory
The directory of public podcasts that ipx servers share (docs/directory.md). ipx's changelog is crates/ipx/CHANGELOG.md, the page's web/CHANGELOG.md.
Its version is in crates/directory/Cargo.toml, and a release is tagged directory-vX.Y.Z.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Changed
- Each feed is checked every twelve hours instead of six (#243).
- Feeds are fetched accepting brotli and zstd as well as gzip (#244).
1.1.1 - 2026-10-15
Changed
- The directory checks five feeds at a time, so a publisher that does not answer no longer holds up the rest of its round (#227).
- A feed's server that takes 10 s to connect, or sends nothing for 15 s, is given up on (#230).
Security
- A failed feed check is logged without its address's query or password (#238).
1.1.0 - 2026-10-13
Added
- With
metrics_bindset, the directory serves Prometheus metrics on a port of its own: memory, open files, and the feeds it has fetched and their bytes. A feed check's trace says how large the feed was (#224).
Changed
- The directory uses mimalloc instead of glibc's allocator, so it gives back memory it has freed instead of holding over a gigabyte while idle (#224).
- The example in docs/directory.md has no healthcheck;
ipx-directory healthis still there to run by hand (#218).
Security
- A feed check's trace keeps the feed's address without its query or password (#225).
1.0.0 - 2026-10-12
Added
- Anyone can browse the directory in a web browser, read only: the most subscribed, categories, every feed A to Z, a search by name, and each feed's page with its latest items and its address to copy into any podcast app (#215).
GET /v1/instanceslists the servers holding a snapshot, with their feeds and subscribers, for an admin token (#206).ipx-directory, a directory of public podcasts that ipx servers share: each sends the public feeds its people subscribe to, and any server with a token browses them, each feed listed once it has been read. Tokens are in its config file, each read-only, read-write or admin, and revoked one at a time (#204, #205).- Traces: a span a request, joining the trace of the ipx server that called, and a trace a refresher round with a span a feed (#213).