Extended Kotlin Scripting
With Kotlin 1.2.+
in your classpath, add:
artifact | GAV |
---|---|
keplin-core |
uy.kohesive.keplin:keplin-core |
keplin-maven-resolver |
uy.kohesive.keplin:keplin-maven-resolver |
keplin-jsr223-kotlin-engine |
uy.kohesive.keplin:keplin-jsr223-kotlin-engine |
TODO:
- document the modules
- add maven / file resolver Cuarentena-like support for whitelisting GAV, and local file patterns
- add Cuarentena support for securing each script engine.
- a simple Repl class SimplifiedRepl
- a file based JAR resolver that can be used with
@file:DependsOnJar(fileInDirRepo|fullyQualifiedFile)
and@file:DirRepository(fullQyalifiedPath)
annotations in the script to load JAR files - a script definition that can automatically imply imports
KotlinScriptDefinitionEx
See unit tests
Allowing Maven artifacts to be specified and used in Kotlin scripts.
- a maven based resolver (
maven-resolver
dependency) used with@file:MavenRepository(mavenRepoUrl)
and@file:DependsOnMaven(mavenGAV)
annotations in the script to load Maven dependencies
See unit tests
keplin-kotlin-repl-compilable
JSR223 engine also implementing Compilable and Invocable interfaceskeplin-kotlin-repl-eval-only
JSR223 engine that is atomic eval only (compile+eval) and also Invocable interface
See unit tests
Keplin is used in the related Kotlin-Jupyter project to provide a basic REPL for Jupyter notebooks or console.