Skip to content
Secure Kotlin scripting and binary lambda-scripts
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
gradle update to Kotlin 1.2.21, fixes related to... Feb 20, 2018
keplin-core dependency fix Feb 20, 2018
keplin-jsr223-kotlin-engine dependency fix Feb 20, 2018
keplin-maven-resolver gradle revamp Nov 20, 2017
keplin-util dependency fix Feb 20, 2018
.gitignore git ignore file Jan 6, 2017
LICENSE Initial commit Dec 31, 2016
README.md small readme cleanup Feb 25, 2018
build.gradle added binTray repo Nov 20, 2017
circle.yml add circle CI build Feb 25, 2018
gradle.properties
gradlew gradle upgrade to current Nov 19, 2017
gradlew.bat Resettable repl, that can backup the repl evaluation stack to a known… Dec 31, 2016
project-settings.gradle add nexus staging profile ID to prevent failed releases when the stag… Nov 21, 2017
release.sh don't double run tests on release Nov 21, 2017
settings.gradle remove chillambda, cuarentena, and elasticsearch-lang-kotlin which ha… Nov 19, 2017

README.md

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.

You can’t perform that action at this time.