#rss #rss-reader #polling #feed #testing-http #article #telegram

bin+lib blazing-fast-rss-watcher

A simple, asynchronous RSS reader implemented in Rust. It fetches, parses, and stores articles from provided RSS feeds and can operate in various modes including testing, HTTP, and Telegram notifications.

2 releases

0.1.2 Jun 22, 2023
0.1.0 Jun 18, 2023

#7 in #rss-reader

MIT license

23KB
332 lines

Blazing Fast RSS Watcher

⚠️ This codebase is not yet ready for production usage.

This can be used as a library, or as a standalone binary.

How to run it as a binary

  1. $ git clone this repository on the main branch
  2. $ cargo build --release
  3. Place your rss links in the rss_feeds.txt file, one per line
  4. $ target/release/blazing-fast-rss-watcher test

Available modes: test, http, telegram

Optionally:

  • Create a .env file with BOT_TOKEN and CHAT_ID for posting to Telegram (required in telegram mode)

How to use the library

  1. cargo add blazing-fast-rss-watcher
  2. See main.rs for an example. The process_rss_feeds function is the main entrypoint. The config::AppConfig struct is the main configuration struct, which is the parameter to process_rss_feeds.
  3. You can configure the environment using the ::from_env() method on the AppConfig struct.

TODO

  • Implement WebSub detection for even faster/more efficient operation for supported feeds
  • Docker image
  • Add param for http mode variable address
  • Make Article struct more dyanmic, allow custom patterns for the description.

Dependencies

~42–58MB
~1M SLoC