Skip to content

irradia/one.irradia.fieldrush

Repository files navigation

one.irradia.fieldrush

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

fieldrush

Features

  • High-performance, low-allocation, type-safe, recovering stream parser for constructing data as it is parsed without constructing any intermediate parse trees.
  • Uses the Jackson stream parser internally for performance and correctness
  • Declarative, functional API for the correct construction/validation of data values during parsing
  • Automatic validation that required fields are present
  • Full positional/lexical information to pinpoint errors in data
  • ISC license
  • High coverage automated test suite
  • Fuzz-tested for robustness

Building

Install the Android SDK. The package has no dependencies on the Android API and is therefore usable in non-Android projects.

$ ./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.fieldrush</groupId>
  <artifactId>one.irradia.fieldrush.api</artifactId>
  <version>${LATEST_VERSION_HERE}</version>
</dependency>

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

implementation "one.irradia.fieldrush:one.irradia.fieldrush.api:${LATEST_VERSION_HERE}"
implementation "one.irradia.fieldrush:one.irradia.fieldrush.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.fieldrush.api Core API
one.irradia.fieldrush.tests Unit tests that can execute without needing a real or emulated device
one.irradia.fieldrush.vanilla Vanilla implementation

Semantic Versioning

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