package river

  1. Overview
  2. Docs
RSS2 and Atom feed aggregator for OCaml

Install

dune-project
 Dependency

Authors

Maintainers

Sources

0.6.tar.gz
md5=0500da466b93aa356f9dabc2550a34ea
sha512=59c3663a156fa767217e6a50361b51d9582c357a479ffa22bffe76c71a770fb812e6c2787a45cae0aa2522bbabe571640861da739f9672aeccabd9514b780b24

doc/CHANGES.html

0.6 - 2026-09-02

  • Add an opt-in ?repair flag to River.fetch (and a new River.of_string) that recovers feeds which are valid Atom/RSS apart from unclosed HTML void elements (e.g. <img>) in type="xhtml" content, by self-closing them before parsing. Off by default, so well-formed feeds are never modified. Also exposes River.sanitize_void_elements.
  • Extend ?repair to also recover well-formed Atom feeds that Syndic rejects because an <entry> is missing the mandatory <updated> element: it is defaulted to the entry's <published>, else the feed-level <updated> (#20). Also exposes River.repair_missing_updated.
  • Respect the feed's own entry identity (Atom <id>, RSS2 guid) when generating Atom entries, resolve relative entry links to absolute URLs, and deduplicate merged posts (#13)
  • Use the feed's own <summary> (Atom) / <description> (RSS2) when available: add a summary accessor and make meta_description prefer it over scraping the origin HTML page (#12)

0.5 - 2026-08-25

  • Expose timeout and user-agent in the public API (#16)
  • Remove unused ocamlnet dependency

0.4 - 2024-11-08

  • Replace ocamlnet HTML parser with Lambda Soup (#15, @aantron)

0.3 - 2023-11-21

  • Fall back to entry id if entry links doesn't exist (#11, @sabine)

0.2 - 2022-04-14

  • Build with dune.
  • Make the types abstract and add accessor functions.
  • Support fetching meta description and SEO image from the posts links.

0.1.3 - 2015-07-28

  • Make river compatible with the latest syndic API

0.1.2 - 2015-03-24

  • Refactoring modules.

0.1.1 - 2015-03-19

  • Upgrading version number.

0.1 - 2015-03-15

  • Initial release