$ show rust-syndication/rss
This is a mature Rust library for parsing and serializing RSS feeds (versions 0.90 through 2.0). It provides a complete data model for RSS channels, items, categories, enclosures, and other elements, with support for common extensions like iTunes, Dublin Core, Syndication, and Atom. The library uses quick-xml for efficient XML processing and offers optional builder patterns, validation against the RSS 2.0 specification, and serde serialization. The codebase is well-structured, with clear separation of concerns across modules, comprehensive test coverage (including round-trip read/write tests), and active maintenance with regular dependency updates. It is a solid, production-ready library for any Rust project needing RSS feed handling.
The LLM identified 2 files worth highlighting for reuse:
Defines the `ToXml` trait and `WriterExt` extension trait for `quick_xml::Writer`. The `WriterExt` provides convenience methods like `write_text_element`, `write_cdata_element`, and `write_object` that abstract away the low-level quick-xml event API. This pattern is reusable for any XML serialization task in Rust, allowing clean composition of serializable types without coupling to a specific XML library.
Contains utility functions for parsing XML namespace declarations and extension elements. `read_namespace_declarations` incrementally builds a namespace map from attributes, supporting local namespace overrides. `parse_extension_element` recursively parses arbitrary XML elements into an `Extension` struct with attributes, text content, and children. This pattern is reusable for any XML parser that needs to handle namespaced extensions generically, and is demonstrated by the library's support for iTunes, Dublin Core, Syndication, and Atom extensions.