Skip to content


Repository files navigation

Build Status

Syndication feed

A Kotlin library for reading RSS 2.0 and ATOM 1.0 syndication feeds.


You're willing to consume ATOM 1.0 or RSS 2.0 feed? Start by creating and interface

interface RssReader {

  fun readRss(): RssFeed

  fun readAtom(): AtomFeed

then let Syndication class generates an implementation of that interface RssReader:

val reader = syndicationReader.create(
val rssFeed = reader.readRss() // this is synchronous
val atomFeed = reader.readAtom() // this is synchronous

each call from the created RssReader will make an HTTP request and return the expected syndication feed.

By default only RssFeed and AtomFeed are accepted as return type.

If you would like to do things asynchronously then take a look to existing adapters in this repo.

  • kotlin-coroutines-adapter for example let you return Deferred<RssFeed> or Deferred<AtomFeed>.
  • rxjava2-adapter let you return RxJava 2.x types (Flowable, Maybe, Single).
  • rxjava3-adapter let you return RxJava 3.x types (Flowable, Maybe, Single).

Custom syndication feed

By default only RssFeed and AtomFeed are accepted as return type but If you would like to return your own custom type then see wiki.

Syndication specifications


Download the latest JAR or grab via Gradle:

implementation 'com.ouattararomuald:syndication:2.1.1'

or Maven:


Snapshots of the development version are available in Sonatype's snapshots repository.


Contributions you say? Yes please!

Bug report?

If at all possible, please attach a minimal sample project or code which reproduces the bug. Screenshots are also a huge help if the problem is visual.

Send a pull request!

If you're fixing a bug, please add a failing test or code that can reproduce the issue.


Copyright 2018 Ouattara Gninlikpoho Romuald

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.