Kazuki is a formal specification language for general purpose software engineering. The language is implemented as a layer over Kotlin.
Aim is to provide:
- a specification syntax similar to VDM-SL (although no stateful aspects will be supported)
- full, modern tool support
- fast animation, facilitated by:
- compiled and strongly-typed specification
- in-line 'drop to code'
Kazuki is immature and under active development. There are big chunks of missing functionality/capability and all aspects of the language should be expected to change. Documentation is currently sparse at best. Use now at your own risk!
We are evolving the language as we look to translate some of our existing specifications. Expect frequent updates.
Kazuki is powered by Kotlin and the Kotlin Symbol Processing API (KSP). Thus, it is necessary to use the Kotlin and KSP plugins to use Kazuki.
Dependencies must then be added on the core api of Kazuki (com.anaplan.engineering:kazuki-core
) and also its KSP library (com.anaplan.engineering:kazuki-ksp
).
For example:
plugins {
id 'org.jetbrains.kotlin.jvm' version("1.9.10")
id 'com.google.devtools.ksp' version("1.9.10-1.0.13")
}
dependencies {
api "com.anaplan.engineering:kazuki-core:0.0.1"
ksp "com.anaplan.engineering:kazuki-ksp:0.0.1"
}
A dependency on com.anaplan.engineering:kazuki-toolkit
can also be included to make use of Kazuki's standard toolkit.
See LICENCE.txt.