Skip to content

Elide: Public Alpha

Compare
Choose a tag to compare
@sgammon sgammon released this 06 Oct 22:58
· 1019 commits to main since this release
1.0.0-alpha7
ce358f9

Summary

Version: 1.0.0-alpha7

This release is provided in tandem with Elide's public alpha launch. It is a huge release full of tons of feature work, fixes, and general toil toward stability.

It's also the first release which we are inviting other developers to try. While it may not be fully stable yet, we're nearing a point where that is coming into view, and at this stage feedback, ideas, etc., are all welcome.

Installation

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

Major features

  • Polyglot support. Elide supports JavaScript, Python, Ruby, WASM, and LLVM, thanks to GraalVM's language implementations. JS and Python are relatively stable; Ruby is broken in native mode, but that should be fixed in the next release.

  • It's crazy fast. We have a built-in server intrinsic now, powered by Netty. It is accessible from each language. You can run, say, an ExpressJS-style server, with Netty underneath, using this intrinsic. Elide can run such servers at over 500k+ RPS, depending on native transport support, etc. This is about 75x faster than Node 20, and 5x+ faster than Deno/Bun.

  • Isolated env. Elide applications, by default, do not have access to host environment variables. This also lands just in time to include Dotenv support, listed below, and matches Elide's closed-world I/O and system guarantees.

  • Isolated I/O. Elide applications do not have access to Host I/O by default. In fact, Host I/O doesn't even work in this version! (lol). Obviously it will work later, but in the meantime, applications can load "bundles" (tarballs) which become the visible filesystem for an application. Bundles will allow apps to seal their I/O reads and writes. This feature lays the groundwork for several other important features which are coming later.

  • Universal Dotenv support. If you have a .env file in your project directory, Elide will load it and apply the contents to guest VMs in all languages. JavaScript, Python, and Ruby are all supported.

Known Issues

  • Ruby is broken in native mode. This is a known issue upstream.

  • Server intrinsic sometimes breaks on Linux. This is an issue with native transport libraries, which we are already working to resolve.

  • Express intrinsic is no longer built-in. This will shortly be distributed via a package, rendering it opt-in.

What's Changed

  • chore(deps): bump actions/setup-node from 3.7.0 to 3.8.1 by @dependabot in #381
  • chore(deps): bump github/codeql-action from 2.21.2 to 2.21.5 by @dependabot in #384
  • chore(deps): bump JetBrains/qodana-action from acb3e3bf8289f38382540459cc38e160d14f2c34 to 32c3156f63f31a54dece4ce3e32dbb767c38bb61 by @dependabot in #385
  • chore(deps): bump ilammy/msvc-dev-cmd from 1.12.0 to 1.12.1 by @dependabot in #368
  • chore(deps): bump debian from 8946810 to 741bae5 in /tools/images/native by @dependabot in #378
  • chore(deps): bump actions/dependency-review-action from 3.0.6 to 3.0.8 by @dependabot in #380
  • chore(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0 by @dependabot in #391
  • chore(deps): bump graalvm/setup-graalvm from 1.1.2 to 1.1.3 by @dependabot in #392
  • chore(deps): bump actions/checkout from 3.5.3 to 4.0.0 by @dependabot in #389
  • chore(deps): bump bufbuild/buf-setup-action from 1.25.1 to 1.26.1 by @dependabot in #390
  • chore(deps): bump debian from 741bae5 to 050f00e in /tools/images/native by @dependabot in #387
  • chore(deps): bump step-security/harden-runner from 2.5.0 to 2.5.1 by @dependabot in #388
  • labs: graalvm trunk by @sgammon in #383
  • chore: dependency upgrades by @sgammon in #393
  • fix: native-image jit linkage errors in cli by @sgammon in #395
  • feat: add initial issue templates by @sgammon in #407
  • feat: internal build plugin by @darvld in #404
  • chore: update bug_report template by @sgammon in #408
  • fix: internal build plugin fixes by @darvld in #414
  • fix: avoid duplicate javadoc artifacts in publications. by @darvld in #415
  • feat: gvm trunk pt. 2 by @sgammon in #400
  • chore(deps): bump docker/login-action from 2.2.0 to 3.0.0 by @dependabot in #410
  • chore(deps): bump slsa-framework/slsa-github-generator from 1.8.0 to 1.9.0 by @dependabot in #411
  • chore(deps): bump bufbuild/buf-breaking-action from 1.1.2 to 1.1.3 by @dependabot in #409
  • chore(deps): bump docker/setup-qemu-action from 2.2.0 to 3.0.0 by @dependabot in #412
  • chore(deps): bump gradle/gradle-build-action from 2.7.0 to 2.8.0 by @dependabot in #413
  • feat(cli): use new DSL API for context acquisition. by @darvld in #420
  • fix: build against gvm trunk, part 2 by @sgammon in #421
  • fix: debugger and inspector configuration by @darvld in #422
  • fix: polyglot engine configuration options. by @darvld in #423
  • fix(build): publish sources jar in pure JVM projects by @darvld in #432
  • chore: add contribution guidelines. by @darvld in #433
  • chore(deps): bump actions/cache from 3.3.1 to 3.3.2 by @dependabot in #431
  • chore(deps): bump actions/setup-java from 3.12.0 to 3.13.0 by @dependabot in #429
  • chore(deps): bump gradle/gradle-build-action from 2.8.0 to 2.8.1 by @dependabot in #430
  • chore(deps): bump graalvm/setup-graalvm from 1.1.3 to 1.1.4 by @dependabot in #427
  • chore(deps): bump actions/deploy-pages from 2.0.3 to 2.0.4 by @dependabot in #428
  • feat: merge runtime modules by @darvld in #426
  • feat: polyglot server intrinsics by @darvld in #424
  • chore: update README.md by @darvld in #434
  • chore: update install scripts. by @darvld in #435
  • fix(cli): amend version for cli npm package by @darvld in #436
  • Latest GVM, part 3 by @sgammon in #425
  • chore: add patreon by @sgammon in #446
  • chore: consolidate contribution guides by @sgammon in #447
  • Pre-release Hotfixes: alpha7 by @sgammon in #448
  • Feature: Sicko Mode (Loom) by @sgammon in #449
  • chore: update license headers by @sgammon in #450
  • Docs: Update at alpha7 by @sgammon in #451
  • feat: new runtime info API by @darvld in #437

Full Changelog: 1.0-v3-alpha5-b13...1.0.0-alpha7