Skip to content

Secure Kotlin scripting and binary lambda-scripts

License

Notifications You must be signed in to change notification settings

ridha-mastouri/keplin

 
 

Repository files navigation

Kotlin Maven Central CircleCI branch Issues DUB Kotlin Slack

keplin

Extended Kotlin Scripting

Gradle /Maven

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.

Current Modules:

keplin-core

  • 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

keplin-maven-resolver

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-jsr223-kotlin-engine

  • keplin-kotlin-repl-compilable JSR223 engine also implementing Compilable and Invocable interfaces
  • keplin-kotlin-repl-eval-only JSR223 engine that is atomic eval only (compile+eval) and also Invocable interface

See unit tests

Kotlin-Jupyter

Keplin is used in the related Kotlin-Jupyter project to provide a basic REPL for Jupyter notebooks or console.

About

Secure Kotlin scripting and binary lambda-scripts

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 99.8%
  • Shell 0.2%