Skip to content
develop
Switch branches/tags
Code

one.irradia.opds2_0

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

opds2_0

Features

  • 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

Building

Install the Android SDK.

$ ./gradlew clean assemble check

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

Using

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

<!-- API -->
<dependency>
  <groupId>one.irradia.opds2_0</groupId>
  <artifactId>one.irradia.opds2_0.api</artifactId>
  <version>${LATEST_VERSION_HERE}</version>
</dependency>

<!-- Parser API -->
<dependency>
  <groupId>one.irradia.opds2_0</groupId>
  <artifactId>one.irradia.opds2_0.parser.api</artifactId>
  <version>${LATEST_VERSION_HERE}</version>
</dependency>

<!-- Default implementation -->
<dependency>
  <groupId>one.irradia.opds2_0</groupId>
  <artifactId>one.irradia.opds2_0.parser.vanilla</artifactId>
  <version>${LATEST_VERSION_HERE}</version>
</dependency>
repositories {
  mavenCentral()
}

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.

Modules

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 irradia.one packages obey Semantic Versioning once they reach version 1.0.0.