Skip to content
OPDS 2.0 parser
Branch: develop
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
gradle/wrapper
one.irradia.opds2_0.api
one.irradia.opds2_0.lexical
one.irradia.opds2_0.parser.api
one.irradia.opds2_0.parser.extension.spi
one.irradia.opds2_0.parser.vanilla
one.irradia.opds2_0.tests.device
one.irradia.opds2_0.tests
src/site/resources
.gitignore
.gitmodules
.travis.yml
README-LICENSE.txt
README.md
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

README.md

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
  • ISC license
  • High coverage automated test suite

Building

Install the Android SDK.

$ ./gradlew clean assembleDebug test

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

Publishing Releases

Releases are published to Maven Central with the following invocation:

$ ./gradlew clean assembleDebug publish closeAndReleaseRepository

Consult the documentation for the Gradle Signing plugin and the Gradle Nexus staging plugin for details on what needs to go into your ~/.gradle/gradle.properties file to do the appropriate PGP signing of artifacts and uploads to Maven Central.

Semantic Versioning

All irradia.one packages obey Semantic Versioning once they reach version 1.0.0.

You can’t perform that action at this time.