This commit contains the initial implementation of Flexbuffers in Kotlin. The code was ported based (#6387)

on the current Java Implementation.

The code dependencies related to JVM were removed and the project is able to target all available platforms.

The only requirement to implement to fully support a target is to implement functions described in `ByteArray.kt`.
Right now the code support JVM and native targets. JS port still missing, but just be trivial to introduce.

Currently, only the `jvm` and `macosX64` targets are enabled until we figure out how to enable tests on all
platforms on CI.

A submodule called "benchmark" is also introduced. It contains a series
of benchmarks comparing Java and Kotlin implementations of FlexBuffers and the UTF8 API.

Finally, this commit does not contain the scripts necessary to publish the artifacts. This will
be introduced at a later stage once the team has an agreement on how to rollout Kotlin releases.
This commit is contained in:
Paulo Pinheiro
2021-01-28 23:49:25 +01:00
committed by GitHub
parent 13d9e35858
commit 6d91096a2f
25 changed files with 4772 additions and 0 deletions

View File

@@ -106,6 +106,29 @@ jobs:
- name: test
working-directory: tests
run: bash JavaTest.sh
build-kotlin:
name: Build Kotlin
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Build
working-directory: kotlin
run: ./gradlew clean build allTests
- name: Run Benchmark
working-directory: kotlin
run: ./gradlew benchmark
- name: Generate Benchmark Report
working-directory: kotlin
run: |
./gradlew jmhReport;
mv benchmark/build/reports/benchmarks/main/* benchmark_latest
- name: Archive benchmark report
uses: actions/upload-artifact@v1
with:
name: Kotlin Benchmark Report
path: kotlin/benchmark_latest
build-rust:
name: Build Rust