Skip to content

Secure Kotlin scripting and binary lambda-scripts

License

Notifications You must be signed in to change notification settings

kohesive/keplin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f1dd47d · Feb 25, 2018
Feb 20, 2018
Feb 20, 2018
Feb 20, 2018
Nov 20, 2017
Feb 20, 2018
Jan 6, 2017
Dec 31, 2016
Feb 25, 2018
Nov 20, 2017
Feb 25, 2018
Feb 25, 2018
Nov 19, 2017
Dec 31, 2016
Nov 21, 2017
Nov 21, 2017
Nov 19, 2017

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