Skip to content

elide-dev/elide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Elide

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.


Code of Conduct
Python 3.11.x

Latest: 1.0.0-beta5

Learn more at elide.dev | Docs, Guides, and Samples


Important

Careful! Elide is in beta.

Usage

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

Kotlin as a first-class citizen

Elide can run Kotlin with no prior build step, can build Java code identically to javac, and can build Kotlin code identically to kotlinc.

elide-projects

  • 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

Pkl as a manifest format

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

Installation

You can install Elide in several ways:

Script Install (Linux amd64 or macOS arm64)

curl -sSL --tlsv1.2 elide.sh | bash -s -

Homebrew (macOS)

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.

Using Elide via Docker

We provide a container image, hosted on GitHub:

docker run --rm -it ghcr.io/elide-dev/elide

Using Elide in GitHub Actions

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

Using Elide from Gradle

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.

Installation in Gradle

plugins {
  alias(elideRuntime.plugins.elide)
}

Using Elide via GitHub Codespaces

We provide a GitHub Codespace with Elide pre-installed. You can click below to try it out, right from your browser:

Open in GitHub Codespaces

Contributing

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.

Star History

Star History Chart