Skip to main content

Module lexicon

Module lexicon 

Source
Expand description

Serde types for the community.lexicon.rss.* atproto record schemas.

FeatherReader’s defining bet is that a user’s feed subscriptions, folders, saved items, and batched read-state live as records in their own atproto PDS under an open, vendor-neutral community lexicon (community.lexicon.rss.*) rather than in the app’s database — portable across any reader that adopts the standard, not merely across FeatherReader instances.

These types mirror the community.lexicon.rss.* schemas, authored in the Lexicon Community idiom (createdAt/updatedAt as ISO-8601 datetimes, url/siteUrl/feedUrl as URIs, folder as an at:// strong ref). Each record carries its $type NSID so it round-trips against the atproto record shape returned by com.atproto.repo.getRecord / listRecords.

Storage rules (never write these authoritatively to local SQLite):

  • Subscription — one followed feed. com.atproto.repo.createRecord on subscribe; deleteRecord on unsubscribe. Source of truth for the follow list.
  • Folder — a lightweight named grouping (a feed lives in one folder).
  • Saved — a starred / save-for-later entry.
  • ReadState — the batched per-feed read cursor (one record per feed, at a feed-derived rkey — never one record per article). Written by the read-state flusher; see the caveats on that flush path in crate::atproto.

Modules§

nsid
NSID $type constants for the community.lexicon.rss.* record collections.

Structs§

Folder
community.lexicon.rss.folder — a named folder/grouping for subscriptions. Record key: tid.
ReadState
community.lexicon.rss.readState — a batched read high-water-mark for a single feed. Record key: any; the rkey is derived deterministically from the feed (a hash of the feed URL), so there is one record per feed with a stable key, NOT one record per article.
Saved
community.lexicon.rss.saved — an article kept for later (the reader’s “star”). Record key: tid.
Subscription
community.lexicon.rss.subscription — a subscription to a syndication feed (RSS / Atom / JSON Feed). Record key: tid.

Enums§

FetchHint
Optional polling-cadence hint on a Subscription. Readers MAY honor or ignore it. Mirrors the lexicon’s knownValues for fetchHint.