Skip to content
Type-safe, functional JSON stream 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.fieldrush.api
one.irradia.fieldrush.tests.device
one.irradia.fieldrush.tests
one.irradia.fieldrush.vanilla
src/site/resources
.gitignore
.travis.yml
README-LICENSE.txt
README.md
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

README.md

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 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.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.device Unit tests that execute on real or emulated devices
one.irradia.fieldrush.tests Unit tests that can execute without needing a real or emulated device
one.irradia.fieldrush.vanilla Vanilla implementation

Publishing Releases

Releases are published to Maven Central with the following invocation:

$ ./gradlew clean assemble 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.