3个版本
使用旧的Rust 2015
0.1.3 | 2019年1月2日 |
---|---|
0.1.2 | 2018年11月7日 |
0.1.1 | 2018年10月27日 |
0.1.0 |
|
#1131 in 异步
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