Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/47degrees/helios

A purely functional JSON library for Kotlin built on Λrrow
https://github.com/47degrees/helios

functional functional-programming json json-parser kotlin kotlin-dsl kotlin-library

Last synced: 7 days ago
JSON representation

A purely functional JSON library for Kotlin built on Λrrow

Awesome Lists containing this project

README

        

# Helios

**Helios** is a library used to transform `Json` text into a model and vice versa.
It's based on part of the [Jawn Parser](https://github.com/non/jawn) built on `Arrow`,
a Functional companion to `Kotlin`'s Standard Library.

Learn more on [**47degrees.github.io/helios**](https://47degrees.github.io/helios)

## Why Helios

**Helios** is one of the fastest `Json` parser libraries in `Kotlin`
with the advantage of using the `Arrow` library for functional programming.

## Adding the dependency

**Helios** uses `Kotlin` version `1.3.31` and `Arrow` version `0.9.0`.

To import the library on `Gradle`, add the following repository and dependencies:

```groovy
repositories {
maven { url = uri("https://dl.bintray.com/47deg/helios") }
}

dependencies {
compile "com.47deg:helios-core:0.2.0"
compile "com.47deg:helios-parser:0.2.0"
compile "com.47deg:helios-optics:0.2.0"
kapt "com.47deg:helios-meta:0.2.0"
kapt "com.47deg:helios-dsl-meta:0.2.0"
}
```

## Running Benchmarks

To run the benchmarks for comparing **Helios** with other `Json` libraries, execute the following command:

```bash
./gradlew :helios-benchmarks:executeBenchmarks
```

To run the benchmarks with **Helios**' performance, execute the following command:

```bash
./gradlew :helios-benchmarks:executeHeliosBenchmark
```

## Running Microsite

To run the **Helios** microsite locally, you need to execute the following command:

```bash
bundle install --gemfile ./docs/Gemfile --path vendor/bundle
```

Next, you'll be able to run the following command:

```bash
BUNDLE_GEMFILE=docs/Gemfile bundle exec jekyll serve -s docs
```