hermod

A rust futures-based RSS/Atom library

2 releases

0.1.1 Oct 27, 2018
0.1.0 Oct 27, 2018

#11 in #atom

Download history 9/week @ 2018-10-28

3 downloads per month

MIT license

11KB
234 lines

Hermod

A futures-based RSS-reading library for rust.

To use

To fetch a feed

extern crate hermod;

use hermod::models::Feed;
use hermod::futures::fetch_feed;

fn get_a_feed(url: &str) {
  fetch_feed(url)
    .and_then(|feed| {
      let channel = feed.channel;
      let title = channel.title;
    });
}

To start a loop that will fetch several feeds, and run a custom func for each feed with the resulting Feed

extern crate hermod;

use std::sync::{Arc, Mutex};

use hermod::models::Feed;
use hermod::futures::start_fetch_loop;

fn automatically_fetch_feeds() {
  let interval = 300; // seconds
  let feeds = vec![
    "https://lorem-rss.herokuapp.com/feed".to_owned(),
    "https://feeds.feedburner.com/cyclingtipsblog/TJog".to_owned(),
  ];
  let feed_state = Arc::new(Mutex::new(feeds)); // thread-safe Vec of strings
  
  let func = |feed: Feed| println!("updated feed: {}", feed.channel.title); // func to run for each updated feed
  
  let work = start_fetch_loop(feed_state, interval, func);
  tokio::run(work);
}

Dependencies

~15MB
~332K SLoC