Elide is a fast batteries-included runtime, combining support for Kotlin, JavaScript, TypeScript, and Python.
elide: verb. to omit (a sound or syllable) when speaking. to join together; to merge.
Latest: 1.0.0-beta5
Learn more at elide.dev | Docs, Guides, and Samples
Important
Careful! Elide is in beta.
Elide is like Node or Python. Use it to run things:
> elide ./my-code.{ts,js,py,kts,kt}
You can use Node APIs. You can even mix languages:
// sample.mts
// use node apis
import { readFileSync } from "node:fs"
// interoperate across languages
import sample from "./sample.py"
// this is typescript - no build step needed first, like deno or bun
const x: number = 42;
console.log(sample.greeting() + ` The answer is ${x}`);
# sample.py
def greeting(name = "Elide"):
return f"Hello, {name}!"
> elide ./sample.mts
Hello, Elide! The answer is 42
Elide can run Kotlin with no prior build step, can build Java code identically to javac
, and can build Kotlin code identically to kotlinc
.
- KotlinX is supported out of the box with no need to install dependencies
- Build Kotlin to JVM bytecode, run tests, and install from Maven, all without verbose configuration
Elide uses Apple's Pkl as a dialect for project manifests. This is like Elide's equivalent of package.json
or pom.xml
. Here's an example:
amends "elide:project.pkl"
name = "elide-test-ktjvm"
description = "Example project using Elide with Kotlin/JVM."
dependencies {
maven {
packages {
// Guava
"com.google.guava:guava:33.4.8-jre"
}
}
}
This is the manifest used above ☝️ in the Kotlin as a first-class citizen sample.
Note
See the full sources for the ktjvm
sample here
Read more about Elide's feature highlights
You can install Elide in several ways:
curl -sSL --tlsv1.2 elide.sh | bash -s -
brew tap elide-dev/elide
brew install elide
After installation, you can run elide --help
or elide info
to see more information.
Note
If you need a binary for a different architecture, please file an issue.
We provide a container image, hosted on GitHub:
docker run --rm -it ghcr.io/elide-dev/elide
We provide a setup action:
- name: "Setup: Elide"
uses: elide-dev/setup-elide@v2
with:
# any tag from the `elide-dev/releases` repo; omit for latest
version: 1.0.0-beta5
We provide an experimental Gradle plugin which can:
- Accelerate
javac
compilations by up to 20x (drop-in!) with identical inputs and outputs - Accelerate downloading of Maven dependencies
The plugin documentation explains how it works. By native-image compiling tools like javac
, JIT warmup is skipped, potentially yielding significant performance gains for projects under 10,000 classes.
plugins {
alias(elideRuntime.plugins.elide)
}
We provide a GitHub Codespace with Elide pre-installed. You can click below to try it out, right from your browser:
Issue reports and pull requests are welcome! See our contribution guidelines or join our discord community and let us know which features you would like to see implemented, or simply participate in the discussions to help shape the future of the project.