Serialisation

Codec modules provide JSON and YAML serialisation for version types.

Available Codecs

Module Library
jsoniter-scala jsoniter-scala
ZIO JSON zio-json
scala-yaml scala-yaml

Dependencies

Choose your preferred library:

// jsoniter-scala
libraryDependencies += "africa.shuwari" %% /* or `%%%` */ "version-codecs-jsoniter" % "0.6.2"

// ZIO JSON
libraryDependencies += "africa.shuwari" %% /* or `%%%` */ "version-codecs-zio" % "0.6.2"

// scala-yaml
libraryDependencies += "africa.shuwari" %% /* or `%%%` */ "version-codecs-yaml" % "0.6.2"

Usage Pattern

All modules follow the same pattern:

// Import the codec package

import version.codecs.jsoniter.given // or zio, yaml

// Codecs are automatically available

Encoded Types

All modules encode these types:

Type JSON Representation
version.Version String: "1.2.3-alpha.1"
version.MajorVersion Number: 1
version.MinorVersion Number: 2
version.PatchNumber Number: 3
version.PreReleaseNumber Number: 1
version.PreReleaseClassifier String: "alpha"
version.PreRelease String: "alpha.1"
version.Metadata Array: ["build", "456"]

Platform Support

All codec modules are cross-platform:

Platform Status
JVM
Scala.js
Scala Native