3 releases

Uses old Rust 2015

0.1.3 Jan 2, 2019
0.1.2 Nov 7, 2018
0.1.1 Oct 27, 2018
0.1.0 Oct 27, 2018

#1230 in Asynchronous

MIT license

12KB
238 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

~12–23MB
~416K SLoC