33 releases
| 0.12.7 | Feb 16, 2025 |
|---|---|
| 0.12.6 | Dec 20, 2024 |
| 0.12.5 | Nov 16, 2024 |
| 0.12.3 | May 11, 2024 |
| 0.1.1 | May 22, 2015 |
#237 in Parser implementations
53,380 downloads per month
Used in 53 crates
(34 directly)
140KB
2.5K
SLoC
atom
Library for serializing the Atom web content syndication format.
This crate requires Rustc version 1.57.0 or greater.
Usage
Add the dependency to your Cargo.toml.
[dependencies]
atom_syndication = "0.12"
Or, if you want Serde include the feature like this:
[dependencies]
atom_syndication = { version = "0.12", features = ["with-serde"] }
The package includes a single crate named atom_syndication.
extern crate atom_syndication;
Reading
A feed can be read from any object that implements the BufRead trait or using the FromStr trait.
use std::fs::File;
use std::io::BufReader;
use atom_syndication::Feed;
let file = File::open("example.xml").unwrap();
let feed = Feed::read_from(BufReader::new(file)).unwrap();
let string = "<feed></feed>";
let feed = string.parse::<Feed>().unwrap();
Writing
A feed can be written to any object that implements the Write trait or converted to an XML string using the ToString trait.
Example
use std::fs::File;
use std::io::{BufReader, sink};
use atom_syndication::Feed;
let file = File::open("example.xml").unwrap();
let feed = Feed::read_from(BufReader::new(file)).unwrap();
// write to the feed to a writer
feed.write_to(sink()).unwrap();
// convert the feed to a string
let string = feed.to_string();
Invalid Feeds
As a best effort to parse invalid feeds atom_syndication will default elements declared as "required" by the Atom specification to an empty string.
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Dependencies
~6MB
~166K SLoC