Expand description
rss-cli — an AI-friendly RSS/Atom feed CLI library.
The crate is split into small modules with frozen public interfaces so that independent implementation work can proceed in parallel without colliding:
model— serialized output types (the AI-facing API contract).config— runtime parameters that are not serialized (params, policies).error— error type, stable error codes, and process exit codes.cache— atomic file-based HTTP cache (conditional GET +show/get_item).fetch— HTTP client with conditional GET.parse—feed-rs→modelconversion, date/URL normalization.identity— deterministic, cache-independent stable item IDs (the keystone).content— HTML → markdown/text extraction + token estimation.discover— feed autodiscovery from a website URL.output— json/ndjson/text rendering + JSON Schema emission.core— orchestration that the CLI and the MCP server both call.mcp— Model Context Protocol server (stdio transport).
Re-exports§
pub use error::RssError;pub use error::exit;pub use model::DiscoverOutput;pub use model::DiscoveredFeed;pub use model::Enclosure;pub use model::ErrorObj;pub use model::FeedResult;pub use model::FeedStatus;pub use model::FetchOutput;pub use model::IdSource;pub use model::Item;pub use model::SCHEMA_VERSION;
Modules§
- cache
- Atomic, file-based HTTP cache.
- cli
- Command-line surface (frozen) + mechanical arg→params conversion.
- config
- Runtime parameters and policies — the non-serialized counterpart to
crate::model. - content
- HTML → markdown/text extraction + token estimation. Owner:
parseragent. - core
- Orchestration shared by the CLI and the MCP server.
- discover
- Feed autodiscovery from a website homepage. Owner:
cliagent. - error
- Error type, stable error codes, and process exit codes.
- fetch
- HTTP client with conditional GET. Owner:
fetcheragent. - identity
- Deterministic, cache-independent stable item IDs — the keystone. Owner:
parser. - mcp
- Model Context Protocol server (stdio transport). Owner:
mcpagent. - model
- Serialized output types — the AI-facing API contract.
- output
- Rendering of results to json / ndjson / text, plus JSON Schema emission.
- parse
feed-rs→crate::modelconversion. Owner:parseragent.