├── .github └── workflows │ └── ci.yml ├── .gitignore ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── android └── benchmark │ ├── build.gradle │ └── src │ ├── androidTest │ ├── AndroidManifest.xml │ └── kotlin │ │ └── dev │ │ └── zacsweers │ │ └── jsonserialization │ │ └── android │ │ ├── AndroidBenchmark.kt │ │ └── AndroidPolymorphicBenchmark.kt │ └── main │ ├── AndroidManifest.xml │ └── kotlin │ └── dev │ └── zacsweers │ └── jsonserialization │ └── android │ ├── DataParser.kt │ └── PolymorphicDataParser.kt ├── deploy_website.sh ├── docs ├── index.md └── results │ ├── android-polymorphic.md │ ├── android.md │ ├── jmh-polymorphic.md │ └── jmh.md ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── jmh ├── build.gradle └── src │ ├── jmh │ └── java │ │ └── dev │ │ └── zacsweers │ │ └── jsonserialization │ │ └── jmh │ │ ├── JmhBenchmark.java │ │ └── JmhPolymorphicBenchmark.java │ └── main │ └── kotlin │ └── dev │ └── zacsweers │ └── jsonserialization │ └── jmh │ └── DataParser.kt ├── mkdocs.yml ├── models ├── build.gradle └── src │ └── main │ ├── java │ └── dev │ │ └── zacsweers │ │ └── jsonserialization │ │ └── models │ │ ├── adapter │ │ ├── GeneratedJsonAdapterFactory.java │ │ └── GeneratedTypeAdapterFactory.java │ │ ├── gson │ │ └── RuntimeTypeAdapterFactory.java │ │ ├── java_serialization │ │ ├── FriendJ.java │ │ ├── ImageJ.java │ │ ├── NameJ.java │ │ ├── ResponseJ.java │ │ └── UserJ.java │ │ ├── kotlinx_serialization │ │ ├── Friend.kt │ │ ├── Image.kt │ │ ├── Name.kt │ │ ├── Response.kt │ │ └── User.kt │ │ ├── model_av │ │ ├── AbstractResponseAV.java │ │ ├── FriendAV.java │ │ ├── ImageAV.java │ │ ├── NameAV.java │ │ ├── ResponseAV.java │ │ └── UserAV.java │ │ ├── moshiKotlinCodegen │ │ ├── KCGAbstractResponse.kt │ │ ├── KCGFriend.kt │ │ ├── KCGImage.kt │ │ ├── KCGName.kt │ │ ├── KCGResponse.kt │ │ └── KCGUser.kt │ │ └── moshiKotlinReflective │ │ ├── KRFriend.kt │ │ ├── KRImage.kt │ │ ├── KRName.kt │ │ ├── KRResponse.kt │ │ └── KRUser.kt │ └── resources │ ├── largesample.json │ ├── largesample_minified.json │ ├── largesample_minified_type_first.json │ ├── largesample_minified_type_last.json │ ├── largesample_type_first.json │ ├── largesample_type_last.json │ ├── mediumsample.json │ ├── smallsample.json │ └── tinysample.json └── settings.gradle /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/README.md -------------------------------------------------------------------------------- /android/benchmark/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/android/benchmark/build.gradle -------------------------------------------------------------------------------- /android/benchmark/src/androidTest/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/android/benchmark/src/androidTest/AndroidManifest.xml -------------------------------------------------------------------------------- /android/benchmark/src/androidTest/kotlin/dev/zacsweers/jsonserialization/android/AndroidBenchmark.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/android/benchmark/src/androidTest/kotlin/dev/zacsweers/jsonserialization/android/AndroidBenchmark.kt -------------------------------------------------------------------------------- /android/benchmark/src/androidTest/kotlin/dev/zacsweers/jsonserialization/android/AndroidPolymorphicBenchmark.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/android/benchmark/src/androidTest/kotlin/dev/zacsweers/jsonserialization/android/AndroidPolymorphicBenchmark.kt -------------------------------------------------------------------------------- /android/benchmark/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/android/benchmark/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /android/benchmark/src/main/kotlin/dev/zacsweers/jsonserialization/android/DataParser.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/android/benchmark/src/main/kotlin/dev/zacsweers/jsonserialization/android/DataParser.kt -------------------------------------------------------------------------------- /android/benchmark/src/main/kotlin/dev/zacsweers/jsonserialization/android/PolymorphicDataParser.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/android/benchmark/src/main/kotlin/dev/zacsweers/jsonserialization/android/PolymorphicDataParser.kt -------------------------------------------------------------------------------- /deploy_website.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/deploy_website.sh -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/docs/index.md -------------------------------------------------------------------------------- /docs/results/android-polymorphic.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/docs/results/android-polymorphic.md -------------------------------------------------------------------------------- /docs/results/android.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/docs/results/android.md -------------------------------------------------------------------------------- /docs/results/jmh-polymorphic.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/docs/results/jmh-polymorphic.md -------------------------------------------------------------------------------- /docs/results/jmh.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/docs/results/jmh.md -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/gradlew.bat -------------------------------------------------------------------------------- /jmh/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/jmh/build.gradle -------------------------------------------------------------------------------- /jmh/src/jmh/java/dev/zacsweers/jsonserialization/jmh/JmhBenchmark.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/jmh/src/jmh/java/dev/zacsweers/jsonserialization/jmh/JmhBenchmark.java -------------------------------------------------------------------------------- /jmh/src/jmh/java/dev/zacsweers/jsonserialization/jmh/JmhPolymorphicBenchmark.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/jmh/src/jmh/java/dev/zacsweers/jsonserialization/jmh/JmhPolymorphicBenchmark.java -------------------------------------------------------------------------------- /jmh/src/main/kotlin/dev/zacsweers/jsonserialization/jmh/DataParser.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/jmh/src/main/kotlin/dev/zacsweers/jsonserialization/jmh/DataParser.kt -------------------------------------------------------------------------------- /mkdocs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/mkdocs.yml -------------------------------------------------------------------------------- /models/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/build.gradle -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/adapter/GeneratedJsonAdapterFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/adapter/GeneratedJsonAdapterFactory.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/adapter/GeneratedTypeAdapterFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/adapter/GeneratedTypeAdapterFactory.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/gson/RuntimeTypeAdapterFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/gson/RuntimeTypeAdapterFactory.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/java_serialization/FriendJ.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/java_serialization/FriendJ.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/java_serialization/ImageJ.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/java_serialization/ImageJ.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/java_serialization/NameJ.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/java_serialization/NameJ.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/java_serialization/ResponseJ.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/java_serialization/ResponseJ.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/java_serialization/UserJ.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/java_serialization/UserJ.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/kotlinx_serialization/Friend.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/kotlinx_serialization/Friend.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/kotlinx_serialization/Image.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/kotlinx_serialization/Image.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/kotlinx_serialization/Name.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/kotlinx_serialization/Name.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/kotlinx_serialization/Response.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/kotlinx_serialization/Response.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/kotlinx_serialization/User.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/kotlinx_serialization/User.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/model_av/AbstractResponseAV.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/model_av/AbstractResponseAV.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/model_av/FriendAV.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/model_av/FriendAV.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/model_av/ImageAV.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/model_av/ImageAV.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/model_av/NameAV.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/model_av/NameAV.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/model_av/ResponseAV.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/model_av/ResponseAV.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/model_av/UserAV.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/model_av/UserAV.java -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinCodegen/KCGAbstractResponse.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinCodegen/KCGAbstractResponse.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinCodegen/KCGFriend.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinCodegen/KCGFriend.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinCodegen/KCGImage.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinCodegen/KCGImage.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinCodegen/KCGName.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinCodegen/KCGName.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinCodegen/KCGResponse.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinCodegen/KCGResponse.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinCodegen/KCGUser.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinCodegen/KCGUser.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinReflective/KRFriend.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinReflective/KRFriend.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinReflective/KRImage.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinReflective/KRImage.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinReflective/KRName.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinReflective/KRName.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinReflective/KRResponse.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinReflective/KRResponse.kt -------------------------------------------------------------------------------- /models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinReflective/KRUser.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/java/dev/zacsweers/jsonserialization/models/moshiKotlinReflective/KRUser.kt -------------------------------------------------------------------------------- /models/src/main/resources/largesample.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/resources/largesample.json -------------------------------------------------------------------------------- /models/src/main/resources/largesample_minified.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/resources/largesample_minified.json -------------------------------------------------------------------------------- /models/src/main/resources/largesample_minified_type_first.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/resources/largesample_minified_type_first.json -------------------------------------------------------------------------------- /models/src/main/resources/largesample_minified_type_last.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/resources/largesample_minified_type_last.json -------------------------------------------------------------------------------- /models/src/main/resources/largesample_type_first.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/resources/largesample_type_first.json -------------------------------------------------------------------------------- /models/src/main/resources/largesample_type_last.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/resources/largesample_type_last.json -------------------------------------------------------------------------------- /models/src/main/resources/mediumsample.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/resources/mediumsample.json -------------------------------------------------------------------------------- /models/src/main/resources/smallsample.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/resources/smallsample.json -------------------------------------------------------------------------------- /models/src/main/resources/tinysample.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/models/src/main/resources/tinysample.json -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ZacSweers/json-serialization-benchmarking/HEAD/settings.gradle --------------------------------------------------------------------------------