Skip to content


Repository files navigation


Build Status Maven Central Maven Central (snapshot) Codacy Badge Codecov Gitter



  • Efficient and strict parsing of OPDS 2.0 feeds
  • Extensible parser for consuming extension data inserted into feeds in a type-safe manner
  • Explicit support for registering parser extensions via ServiceLoader
  • Parsed feeds exposed as immutable and persistent data types for correctness and thread-safety
  • Extension module for the Library Simplified library registry
  • ISC license
  • High coverage automated test suite


Install the Android SDK.

$ ./gradlew clean assemble check

If the above fails, it's a bug. Report it!


Use the following Maven or Gradle dependencies, replacing ${LATEST_VERSION_HERE} with whatever is the latest version published to Maven Central:

<!-- API -->

<!-- Parser API -->

<!-- Default implementation -->
repositories {

implementation "one.irradia.opds2_0:one.irradia.opds2_0.api:${LATEST_VERSION_HERE}"
implementation "one.irradia.opds2_0:one.irradia.opds2_0.parser.api:${LATEST_VERSION_HERE}"
implementation "one.irradia.opds2_0:one.irradia.opds2_0.parser.vanilla:${LATEST_VERSION_HERE}"

Library code is encouraged to depend only upon the API package in order to give consumers the freedom to use other implementations of the API if desired.


Module Description
one.irradia.opds2_0.api Core API
one.irradia.opds2_0.lexical Lexical types used by parsers
one.irradia.opds2_0.parser.api Parser API
one.irradia.opds2_0.parser.extension.spi Parser extension SPI
one.irradia.opds2_0.tests.device Unit tests that execute on real or emulated devices
one.irradia.opds2_0.tests Unit tests that can execute without needing a real or emulated device
one.irradia.opds2_0.vanilla Vanilla parser implementation

Semantic Versioning

All packages obey Semantic Versioning once they reach version 1.0.0.