Skip to content

krzema12/snakeyaml-engine-kmp

Folders and files

NameName
Last commit message
Last commit date
Apr 10, 2025
May 15, 2024
Jan 4, 2025
Mar 28, 2025
Apr 28, 2024
Feb 25, 2025
Feb 19, 2025
Apr 9, 2025
Feb 20, 2025
Jun 13, 2023
Oct 26, 2024
Apr 22, 2018
Dec 18, 2024
Dec 18, 2024
Apr 11, 2025
May 31, 2024
Feb 25, 2025
Jul 14, 2024
Jan 16, 2025
Jan 19, 2025
Apr 10, 2025

Repository files navigation

Maven Central Version

Commits to upstream - the number of commits in snakeyaml-engine to be considered as candidates for porting to snakeyaml-engine-kmp

SnakeYAML Engine KMP

Overview

SnakeYAML Engine KMP is a YAML 1.2 processor for Kotlin Multiplatform, and supports

  • Kotlin/JS,
  • Kotlin/JVM,
  • Kotlin/Native,
  • Kotlin/Wasm.

SnakeYAML Engine KMP is based on SnakeYAML Engine.

Tip

Are you wondering if SnakeYAML Engine KMP is for you?

SnakeYAML Engine KMP offers fine-grained control and advanced functionality, which is a good fit if you need more customization and flexibility.

If you're for a hassle-free YAML (de)serialization experience, we recommend using kaml, which is designed for simplicity and ease of integration.

Status

The library has been successfully ported to KMP, and is consumed by kaml, a library that integrates with kotlinx.serialization.

SnakeYAML Engine KMP uses comprehensive YAML test suites that validate correctness. Detailed performance testing wasn't conducted, however we have performance reports (see here) and mechanisms in place that should prevent performance regressions.

How to use

SnakeYAML Engine KMP is published to Maven Central.

// build.gradle.kts

repositories {
    mavenCentral()
}

dependencies {
    implementation("it.krzeminski:snakeyaml-engine-kmp:x.y.z")
}

To learn about the API, view the reference documentation.

We also recommend reading SnakeYAML Engine's documentation.

Snapshot releases

Snapshot versions of SnakeYAML Engine KMP (straight from the main branch) are available. They are published to Sonatype snapshots repository, which must be added as a custom Maven repo:

// build.gradle.kts

repositories {
    maven {
        url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/")
    }
}

dependencies {
    implementation("it.krzeminski:snakeyaml-engine-kmp:x.y.z-SNAPSHOT")
}