#feed #rss #atom #json #json-feed

feed-rs

一个统一的解析器,可以处理Atom、RSS 2.0、RSS 1.0、RSS 0.x和JSON Feed

28个版本 (11个稳定版)

2.1.0 2024年7月19日
1.5.3 2024年5月26日
1.4.0 2024年1月10日
1.3.0 2023年2月10日
0.1.3 2017年7月7日

#99 in 解析器实现

Download history 1853/week @ 2024-05-02 2160/week @ 2024-05-09 1471/week @ 2024-05-16 1437/week @ 2024-05-23 1939/week @ 2024-05-30 1707/week @ 2024-06-06 1093/week @ 2024-06-13 1032/week @ 2024-06-20 1178/week @ 2024-06-27 803/week @ 2024-07-04 1412/week @ 2024-07-11 2234/week @ 2024-07-18 1593/week @ 2024-07-25 1507/week @ 2024-08-01 1406/week @ 2024-08-08 1254/week @ 2024-08-15

每月5,971次下载
31crate中使用 27 个直接使用

MIT 许可证

240KB
4K SLoC

feed-rs

Build Status Crates.io Status

一个用于解析各种形式的数据源库,如Atom、RSS和JSON Feed。它还支持iTunes、Dublin Core和Media RSS扩展,并通过serde进行序列化和反序列化。

文档

用法

将依赖项添加到您的 Cargo.toml

[dependencies]
feed-rs = "2.1.0"

读取

可以从实现 Read 特性的任何对象解析数据源。

use feed_rs::parser;
let xml = r#"
<feed>
   <title type="text">sample feed</title>
   <updated>2005-07-31T12:29:29Z</updated>
   <id>feed1</id>
   <entry>
       <title>sample entry</title>
       <id>entry1</id>
   </entry>
</feed>
"#;
let feed = parser::parse(xml.as_bytes()).unwrap();

解析器将自动检测XML与JSON,因此解析JSON Feed内容的方式相同。

use feed_rs::parser;
let json = r#"
{
  "version": "https://jsonfeed.org/version/1",
  "title": "JSON Feed",
  "description": "JSON Feed is a pragmatic syndication format for blogs, microblogs, and other time-based content.",
  "home_page_url": "https://jsonfeed.org/",
  "feed_url": "https://jsonfeed.org/feed.json",
  "author": {
    "name": "Brent Simmons and Manton Reece",
    "url": "https://jsonfeed.org/"
  },
  "items": [
    {
      "title": "Announcing JSON Feed",
      "date_published": "2017-05-17T08:02:12-07:00",
      "id": "https://jsonfeed.org/2017/05/17/announcing_json_feed",
      "url": "https://jsonfeed.org/2017/05/17/announcing_json_feed",
      "content_html": "<p>We — Manton Reece and Brent Simmons — have noticed that JSON...</p>"
    }
  ]
}"#;
let feed = parser::parse(json.as_bytes()).unwrap();

许可证

MIT许可证 (LICENSE-MIThttp://opensource.org/licenses/MIT)

贡献

您提交的任何有意包含在作品中的贡献,均应按上述方式许可,不附加任何额外条款或条件。

依赖

~12MB
~297K SLoC