RSS Gen
A comprehensive Rust library for generating, parsing, serializing, and deserializing RSS feeds across various RSS versions.
• Website • Documentation • Report Bug • Request Feature • Contributing Guidelines
Overview
rss-gen
is a powerful Rust library designed for working with RSS feeds. It provides functionality for generating, parsing, serializing, and deserializing RSS content across multiple RSS versions. It supports the following RSS versions: RSS 0.90, RSS 0.91, RSS 0.92, RSS 1.0, and RSS 2.0. The library offers a flexible and efficient way to handle RSS feeds in your Rust projects.
Features
- Support for RSS versions 0.90, 0.91, 0.92, 1.0, and 2.0
- Generation of RSS feeds from structured data
- Parsing of existing RSS feeds into structured data
- Serialization and deserialization of RSS data
- Extensible elements for managing standard and optional RSS fields
- Atom link support for modern syndication compatibility
- Image embedding for RSS 2.0 feeds
- Comprehensive error handling and validation
- Performance-optimized XML processing
Installation
Add this to your Cargo.toml
:
[]
= "0.0.1"
Usage
Here's a basic example of how to use the rss-gen
library to generate an RSS feed:
use ;
For parsing an existing RSS feed:
use parse_rss;
Macros
RSS Gen provides a set of convenient macros to simplify RSS feed generation and data manipulation tasks:
macro_generate_rss!
: Generates a complete RSS feed in XML format from a givenRssData
struct.macro_write_element!
: Writes an individual XML element with a given name and content.macro_set_rss_data_fields!
: Sets multiple fields of anRssData
struct in one go.macro_get_args!
: Retrieves a named argument from aclap::ArgMatches
object, useful for command-line interfaces.macro_metadata_option!
: Extracts an option value from metadata, typically used withHashMap<String, String>
.
Refer to the documentation for more details on how to use these macros.
Documentation
For full API documentation, please visit docs.rs/rss-gen.
Supported RSS Versions
- RSS 0.90
- RSS 0.91
- RSS 0.92
- RSS 1.0
- RSS 2.0
Rust Version Compatibility
Compiler support: requires rustc
1.56.0+
Examples
To run the examples, clone the repository and use the following command:
cargo run --example example_name
Replace example_name
with the name of the example you want to run.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
License
The project is dual-licensed under the terms of both the MIT license and the Apache License (Version 2.0).
Acknowledgments
This crate wouldn't be possible without the valuable open-source work of others, especially:
- quick-xml for fast XML serialization and deserialization.