Skip to content

Repository files navigation

sure

CI codecov docs

Type-safe value validation DSL for Kotlin Multiplatform.

Modules

  • :sure — KMP library (jvm, iosX64, iosArm64, iosSimulatorArm64). Core API: Validator<T>, ValidationScope, @Validatable, built-in checks.
  • :sure-ksp — KSP processor. Generates T.validate() extensions and validatorFor<T>() registry for every @Validatable class.

Usage

@Validatable
data class LoginRequest(val username: String, val password: String) {
  companion object {
    val validator = Validator<LoginRequest> {
      field(::username) { notBlank(); lengthIn(1..254) }
      field(::password) { notBlank(); lengthIn(8..1024) }
    }
  }
}

LoginRequest("alice", "hunter22!").validate() // ValidationResult.Valid

Consumer Gradle setup:

plugins {
  alias(libs.plugins.ksp)
}

dependencies {
  implementation("io.github.halotukozak:sure:0.1.0")
  ksp("io.github.halotukozak:sure-ksp:0.1.0")
}

About

Type-safe value validation DSL for Kotlin Multiplatform

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages