Crate rss

Source
Expand description

Library for serializing the RSS web content syndication format.

§Reading

A channel can be read from any object that implements the BufRead trait.

§From a file

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();

§From a buffer

Note: This example requires reqwest crate.

use std::error::Error;
use rss::Channel;

async fn example_feed() -> Result<Channel, Box<dyn Error>> {
    let content = reqwest::get("http://example.com/feed.xml")
        .await?
        .bytes()
        .await?;
    let channel = Channel::read_from(&content[..])?;
    Ok(channel)
}

§Writing

A channel can be written to any object that implements the Write trait or converted to an XML string using the ToString trait.

use rss::Channel;

let channel = Channel::default();
channel.write_to(::std::io::sink()).unwrap(); // write to the channel to a writer
let string = channel.to_string(); // convert the channel to a string

§Creation

Builder methods are provided to assist in the creation of channels.

Note: This requires the builders feature, which is enabled by default.

use rss::ChannelBuilder;

let channel = ChannelBuilder::default()
    .title("Channel Title")
    .link("http://example.com")
    .description("An RSS feed.")
    .build();

§Validation

Validation methods are provided to validate the contents of a channel against the RSS specification.

Note: This requires enabling the validation feature.

use rss::Channel;
use rss::validation::Validate;

let channel = Channel::default();
channel.validate().unwrap();

Modules§

extension
Types and methods for namespaced extensions.

Structs§

Category
Represents a category in an RSS feed.
CategoryBuilder
Builder for Category.
Channel
Represents the channel of an RSS feed.
ChannelBuilder
Builder for Channel.
Cloud
Represents a cloud in an RSS feed.
CloudBuilder
Builder for Cloud.
Enclosure
Represents an enclosure in an RSS item.
EnclosureBuilder
Builder for Enclosure.
Guid
Represents the GUID of an RSS item.
GuidBuilder
Builder for Guid.
Image
Represents an image in an RSS feed.
ImageBuilder
Builder for Image.
Item
Represents an item in an RSS feed.
ItemBuilder
Builder for Item.
Source
Represents the source of an RSS item.
SourceBuilder
Builder for Source.
TextInput
Represents a text input for an RSS channel.
TextInputBuilder
Builder for TextInput.

Enums§

Error
Errors that occur during parsing.