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