aboutsummaryrefslogtreecommitdiff

rss - command-line RSS feed manipulation

rss is like jq for RSS files. A simple tool to fetch, filter, and extract information from RSS feeds.

As an example, here is how to generate a summary of all posts submitted to lobste.rs yersterday:

$ rss fetch https://lobste.rs/rss | rss filter --date $(date -d "-1 day" "+%Y-%m-%d") | rss render template.tera
- "6.33 times faster than C - part one": https://owen.cafe/posts/six-times-faster-than-c/
...
- "Simulation Testing For Liveness": https://tigerbeetle.com/blog/2023-07-06-simulation-testing-for-liveness/

$ cat template.tera
{% for item in items -%}
- "{{ item.title }}": {{ item.link }}
{% endfor %}

Templates use the Tera templating language, which is basically the same as Jinja2. A template is passed a copy of the input RSS feed's items, a list of rss::Item.

Building

This project is written in Rust, and uses the Cargo package manager. Building it requires a Rust toolchain, which can be installed using the rustup program.

Building the project is as simple as running:

$ cargo build

Reporting bugs

Please report any bugs you find to bugs+rss@sixfoisneuf.fr. Contributions are welcomed, as long as they follow the git send-email format.