31 releases
0.12.5 | Nov 16, 2024 |
---|---|
0.12.3 | May 11, 2024 |
0.12.2 | Jul 26, 2023 |
0.12.1 | Mar 27, 2023 |
0.1.1 | May 22, 2015 |
#73 in Parser implementations
18,958 downloads per month
Used in 40 crates
(27 directly)
135KB
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
~164K SLoC