3个版本

使用旧的Rust 2015

0.1.3 2019年1月2日
0.1.2 2018年11月7日
0.1.1 2018年10月27日
0.1.0 2018年10月27日

#1131 in 异步

MIT 协议

12KB
238

Hermod

基于future的Rust RSS阅读库。

使用方法

获取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;
    });
}

启动一个循环,该循环将获取多个feed,并对每个feed运行自定义func,使用结果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);
}

依赖

~12–23MB
~414K SLoC