The next runtime.
One binary for native performance in your favorite language.
// Built-in compiler.
fun greeting(name: String = "Elide") = "Hello, ${name}!"
fun main() {
val x = 42
println(greeting() + " The answer is ${x}")
}
// Typed deps -- no XML, no pom.xml
amends "elide:project.pkl"
name = "my-app"
dependencies {
maven {
packages {
"io.ktor:ktor-server-core:3.1.1"
"io.ktor:ktor-server-netty:3.1.1"
}
}
}
artifacts {
["classes"] = new Jvm.Jar {
sources { "main" }
}
["native"] = new Native.NativeImage {
from { "classes" }
}
}
SSR cold-start benchmarks on Linux x64. See methodology.
// Built-in compiler.
fun greeting(name: String = "Elide") = "Hello, ${name}!"
fun main() {
val x = 42
println(greeting() + " The answer is ${x}")
}
// Typed deps -- no XML, no pom.xml
amends "elide:project.pkl"
name = "my-app"
dependencies {
maven {
packages {
"io.ktor:ktor-server-core:3.1.1"
"io.ktor:ktor-server-netty:3.1.1"
}
}
}
artifacts {
["classes"] = new Jvm.Jar {
sources { "main" }
}
["native"] = new Native.NativeImage {
from { "classes" }
}
}
First-class citizen. No prior build step. KotlinX out of the box. Maven dependencies with zero config.
.kt
import kotlinx.serialization.json.Json
import kotlinx.serialization.Serializable
@Serializable
data class Config(val name: String, val port: Int)
fun main() {
val config = Json.decodeFromString<Config>("""{"name":"elide","port":3000}""")
println("Running ${config.name} on port ${config.port}")
}
Pkl as a manifest format. Like package.json or pom.xml, but typed and composable. Maven dependencies resolve automatically.
amends "elide:project.pkl"
name = "elide-test-ktjvm"
description = "Example project using Elide with Kotlin/JVM."
dependencies {
maven {
packages {
"com.google.guava:guava:33.4.8-jre"
}
}
}
Elide lets your agents see inside running programs so they can help modify behavior live. An AI agent can test code as it builds, inspect runtime state, and iterate without restarting. The runtime becomes a collaborator, not a black box.
100x faster than Next.js isn't a theoretical benchmark. It's what happens when you compile JavaScript to native machine code instead of interpreting it. Same for Python. Same for Kotlin.
You don't have to rewrite in Rust to get memory safety. Elide sandboxes your existing JavaScript, Python, and JVM code at the runtime level. The safety comes from the runtime, not the language.
No more "which Node version." No more "which JDK." No more "which Python." One binary, every language, every developer on the team.
No migration guide because there's nothing to migrate. Same file extensions, same imports, same APIs. Faster output.