You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/building.md
+7-10Lines changed: 7 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -5,15 +5,15 @@
5
5
To build Kotlin Serialization JDK version 11 or higher is required. Make sure this is your default JDK (`JAVA_HOME` is set accordingly).
6
6
This is needed to compile the `module-info` file included for JPMS support.
7
7
8
-
In case you are determined to use different JDK version, or experience problems with JPMS you can turn off compilation of modules
8
+
In case you are determined to use a different JDK version or experience problems with JPMS, you can turn off compilation of module-info files
9
9
completely with `disableJPMS` property: add `disableJPMS=true` to gradle.properties or `-PdisableJPMS` to Gradle CLI invocation.
10
10
11
11
## Runtime library
12
12
13
13
Kotlin Serialization runtime library itself is a [multiplatform](http://kotlinlang.org/docs/reference/multiplatform.html) project.
14
-
To build library from the source and run all tests, use `./gradlew build`. Corresponding platform tasks like `jvmTest`,`jsTest`, `nativeTest` and so on are also available.
14
+
To build the library from the source and run all tests, use `./gradlew build`. Corresponding platform tasks like `jvmTest,``jsTest,``macosArm64Test`, and so on are also available.
15
15
16
-
Project can be opened in in Intellij IDEA without additional prerequisites.
16
+
The project can be opened in IntelliJ IDEA without additional prerequisites.
17
17
In case you want to work with Protobuf tests, you may need to run `./gradlew generateTestProto` beforehand.
18
18
19
19
@@ -30,19 +30,16 @@ dependencies {
30
30
}
31
31
```
32
32
33
-
Note that by default, only one Native target is built (the one that is the current host, e.g. `macosX64` on Intel Mac machines, `linuxX64` on linux machines, etc).
34
-
To compile and publish all Native artifacts, not only the host one, use Gradle property `native.deploy=true`.
35
-
36
-
To use snapshot version of compiler (if you have built and install it from sources), use flag `-Pbootstrap`.
33
+
To use snapshot version of compiler (if you have built and installed it from sources), use flag `-Pbootstrap`.
37
34
If you have built both Kotlin and Kotlin/Native compilers, set `KONAN_LOCAL_DIST` environment property to the path with Kotlin/Native distribution
`master` and `dev` branches of library should be binary compatible with latest released compiler plugin. In case you want to test some new features from other branches,
37
+
The `master` and `dev` branches of the library should be binary compatible with the latest released compiler plugin. In case you want to test some new features from other branches,
41
38
which are still in development and may not be compatible in terms of bytecode produced by plugin, you'll need to build the plugin by yourself.
42
39
43
40
## Compiler plugin
44
41
45
-
Compiler plugin for Gradle/Maven and IntelliJ plugin, starting from Kotlin 1.3, are embedded into the Kotlin compiler.
42
+
Compiler plugins for Gradle/Maven and IntelliJ plugin, starting from Kotlin 1.3, are embedded into the Kotlin compiler.
46
43
47
44
Sources and steps to build it are located [here](https://github.com/JetBrains/kotlin/tree/master/plugins/kotlinx-serialization).
48
-
In short, you'll just need to run `./gradlew dist install` to get `1.x.255-SNAPSHOT` versions of Kotlin compiler, stdlib and serialization plugins in the Maven local repository.
45
+
In short, you'll just need to run `./gradlew dist install` to get `2.x.255-SNAPSHOT` versions of Kotlin compiler, stdlib, and serialization plugins in the Maven local repository.
| Avro |[sksamuel/avro4k](https://github.com/sksamuel/avro4k) <br> `com.sksamuel.avro4k:avro4k`| JVM only | This library allows serialization and deserialization of objects to and from [Avro](https://avro.apache.org). It will read and write from Avro binary or json streams or generate Avro Generic Records directly. It will also generate Avro schemas from data classes. The library allows for easy extension and overrides for custom schema formats, compatiblity with schemas defined outside out of the JVM and for types not supported out of the box. |
21
+
| Avro |[avro-kotlin/avro4k](https://github.com/avro-kotlin/avro4k) <br> `com.github.avro-kotlin.avro4k:avro4k-core`| JVM only | This library allows serialization and deserialization of objects to and from [Avro](https://avro.apache.org). It will read and write from Avro binary or json streams or generate Avro Generic Records directly. It will also generate Avro schemas from data classes. The library allows for easy extension and overrides for custom schema formats, compatiblity with schemas defined outside out of the JVM and for types not supported out of the box. |
22
22
| Bson |[jershell/kbson](https://github.com/jershell/kbson) <br> `com.github.jershell:kbson`| JVM only | Allows serialization and deserialization of objects to and from [BSON](https://docs.mongodb.com/manual/reference/bson-types/). |
23
23
| TOML |[Peanuuutz/tomlkt](https://github.com/Peanuuutz/tomlkt) <br> `net.peanuuutz.tomlkt:tomlkt`| all supported platforms | Multiplatform encoder and decoder for [TOML](http://toml.io/) 1.0.0 compliant. This library aims to provide similar API to the official JSON format (such as TomlLiteral, TomlTable), while adding TOML specific features (such as @TomlComment, @TomlMultilineString). |
24
24
| TOML |[akuleshov7/ktoml](https://github.com/akuleshov7/ktoml) <br> `com.akuleshov7:ktoml-core`| all supported platforms | Fully Native and Multiplatform Kotlin serialization library for serialization/deserialization of TOML format. This library contains no Java code and no Java dependencies and it implements multiplatform parser, decoder and encoder of TOML. |
@@ -34,3 +34,4 @@ For convenience, they have same `groupId`, versioning and release cycle as core
34
34
| CSV |[hfhbd/kotlinx-serialization-csv](https://github.com/hfhbd/kotlinx-serialization-csv) <br> `app.softwork:kotlinx-serialization-csv`| all supported platforms | Allows serialization and deserialization of CSV files. There are still some limitations (ordered properties). |
35
35
| Fixed Length Format |[hfhbd/kotlinx-serialization-csv](https://github.com/hfhbd/kotlinx-serialization-csv) <br> `app.softwork:kotlinx-serialization-flf`| all supported platforms | Allows serialization and deserialization of [Fixed Length Format files](https://www.ibm.com/docs/en/psfa/7.2.1?topic=format-fixed-length-files). Each property must be annotated with `@FixedLength` and there are still some limitations due to missing delimiters. |
36
36
| JSON5 |[xn32/json5k](https://github.com/xn32/json5k) <br> `io.github.xn32:json5k`| JVM, Native | Library for the serialization to and deserialization from [JSON5](https://json5.org) text. |
37
+
| DynamoDB |[DynaMap](https://github.com/codanbaru/dynamap) <br> `com.codanbaru.kotlin:dynamap`| JVM | Allows serialization and deserialization of objects to and from [AttributeValue](https://sdk.amazonaws.com/kotlin/api/latest/dynamodb/aws.sdk.kotlin.services.dynamodb.model/-attribute-value/index.html) of Amazon [DynamoDB](https://aws.amazon.com/dynamodb/)|
0 commit comments