Library for serializing the RSS web content syndication format.
Reading from the following RSS versions is supported:
Writing support is limited to RSS 2.0.
Add the dependency to your Cargo.toml.
toml
[dependencies]
rss = "1.0"
The package includes a single crate named rss.
rust
extern crate rss;
A channel can be read from any object that implements the BufRead trait.
```rust use std::fs::File; use std::io::BufReader; use rss::Channel;
let file = File::open("example.xml").unwrap(); let channel = Channel::read_from(BufReader::new(file)).unwrap(); ```
A channel can also be read from a URL.
Note: This requires enabling the from_url feature.
```rust use rss::Channel;
let channel = Channel::from_url("http://example.com/feed.xml").unwrap(); ```
A channel can be written to any object that implements the Write trait or converted to an XML string using the ToString trait.
Note: Writing a channel does not perform any escaping of XML entities.
```rust use rss::Channel;
let channel = Channel::default(); channel.writeto(::std::io::sink()).unwrap(); // // write to the channel to a writer let string = channel.tostring(); // convert the channel to a string ```
Builder methods are provided to assist in the creation of channels.
```rust use rss::ChannelBuilder;
let channel = ChannelBuilder::default() .title("Channel Title") .link("http://example.com") .description("An RSS feed.") .build() .unwrap(); ```
Validation methods are provided to validate the contents of a channel against the RSS specification.
Note: This requires enabling the validation feature.
```rust use rss::Channel; use rss::validation::Validate;
let channel = Channel::default(); channel.validate().unwrap(); ```
Elements which have non-default namespaces will be considered extensions. Extensions are stored in Channel.extensions and Item.extensions.
For conveninence, Dublin Core, Syndication and iTunes extensions are extracted to structs and stored in as properties on channels and items.
As a best effort to parse invalid feeds rss will default elements declared as "required" by the RSS 2.0 specification to an empty string.
Licensed under either of
at your option.