Skip to content

Releases: elide-dev/elide

Elide: Alpha 9

15 May 04:56
1.0.0-alpha9
6ae3652
Compare
Choose a tag to compare

Release Notes

Version: 1.0.0-alpha9

This release is focused on (1) bugfixes and general stability, (2) Node API support, and (3) TypeScript support. New Node API methods are implemented in fs, fs/promises, and stream, with many more coming soon.

This version has been released to binaries on macOS, Linux, and Windows, and is available for JVM on Maven Central.

Installation

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

Special Thanks

  • Diego Rivero (@isthistechsupport) for helping test Elide and revealing several bugs. All are now fixed. Thank you!
  • Christian Humer (@chumer) for helping navigate GraalJs internals to deliver TypeScript support. Thank you!
  • Jordan Claspell (@claspell) for helping test Elide on macOS/AMD64. Thank you!
  • Tyler Porras (@t-porras) for helping test Elide on macOS/AMD64. Thank you!
  • Felipe Recalde (@designdream) for helping test Elide on macOS/ARM64. Thank you!
  • Damien O'Hara (@mfwgenerics) for helping test Elide and for all his feedback. Thank you!
  • Latanya Donaldson (@ldonald067) for helping test Elide's release process. Thank you!
  • Sayyid Yoffa (@sayyidyofa) for helping test Elide on Linux, and for his contributions and feedback. Thank you!

Change Summary

  • New support for the node:url module
  • Initial support for the node:stream module
  • Initial support (internally) for native TypeScript execution
  • Better support for fs and fs/promises
    • fs.readFile / readFileSync / fs/promises.readFile
    • fs.writeFile / fs.writeFileSync / fs/promises.writeFile
    • fs.mkdir / fs.mkdirSync / fs/promises.mkdir
    • fs.exists / fs.existsSync
    • fs.access / fs.accessSync / fs/promises.access

New Features

Fixed Issues

Node API Support

🟢 = Improved support; fully compliant
🟡 = Better support but not compliant yet

  • 🟢 node:url
  • 🟡 node:events
  • 🟡 node:fs
  • 🟡 node:fs/promises
  • 🟡 node:stream

Platform Support

  • macOS: amd64 / arm64
  • Linux: amd64 / arm64
  • Windows: amd64

Notable Dependency Upgrades

  • Kotlin → 2.0.0-RC3

Note

This release is registered on Sigstore, and signed with GPG2. Hash-lock files are provided for each archive. Provenance material is also made available, but due to a bug in CI, may not yet verify. This will be rectified by later releases and corrected before 1.0.0 is released.

What's Changed

  • chore(deps): bump bufbuild/buf-lint-action from 1.1.0 to 1.1.1 by @dependabot in #835
  • chore(deps): bump docker/setup-buildx-action from 3.0.0 to 3.3.0 by @dependabot in #834
  • chore(deps): bump docker/login-action from 3.0.0 to 3.1.0 by @dependabot in #836
  • feat: initial work on embedded dispatch by @darvld in #838
  • feat(base): implement sorted collections by @darvld in #869
  • feat(node): node api support for alpha9 by @sgammon in #849

Full Changelog: 1.0.0-alpha8...1.0.0-alpha9

Elide: Alpha 8

02 May 06:58
1.0.0-alpha8
9d72e72
Compare
Choose a tag to compare

Summary

Version: 1.0.0-alpha8

This is the first major release after Elide's public alpha launch. It is a huge release full of tons of feature work, fixes, and general toil toward stability.

See the Known Issues and Fixed Issues sections below for more information.

Language Support

  • JavaScript (ECMA2023)
  • Python (3.11.x)
  • Ruby (3.2~)

New features

Fixed issues

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.

  • 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 Express JS-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. Applications can load "bundles" (tarballs) which become the visible filesystem for an application, or elect to allow Host I/O. Bundles will allow apps to seal their I/O reads and writes. VFS via these bundles can be combined with Host I/O using VFS layering.

  • 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.

Fixed Issues

  • Ruby is working great in native mode now. #789

  • Python is working great with VFS, and so is Ruby.

Known Issues

Coming shortly.

Dependency Updates

  • Java → JDK 22
  • Kotlin → 2.0.0-RC2
  • Micronaut → 4.3.8
  • React → 18.3.1
  • PNPM → 9.0.6
  • Node → 21.x

Note

This release is registered on Sigstore, and signed with GPG2. Hash-lock files are provided for each archive. **Provenance material is also made available, but due to a bug in CI, may not yet verify. This will be rectified by later releases and corrected before 1.0.0 is released.

What's Changed

  • Hotfixes: AWT, selfupdate command by @sgammon in #454
  • feat: decouple env plugin from language runtimes by @darvld in #452
  • feat(dev): add codespace template for trying elide by @sgammon in #466
  • feat(dev): codespaces re-org and update by @sgammon in #468
  • chore: add homebrew install to readme by @sgammon in #473
  • feat(dev): add bash and elide containers by @sgammon in #467
  • fix: issues with netty in native image by @darvld in #475
  • fix(cli): avoid crashing when no user config directory is present. by @darvld in #476
  • feat: host I/O access using a Hybrid VFS by @darvld in #495
  • feat: support for JVM-based guest languages. by @darvld in #501
  • chore: add buildless github action to ci by @sgammon in #506
  • fix(graalvm): include core module replacements by default in js plugin. by @darvld in #477
  • chore(deps): bump actions/checkout from 4.1.0 to 4.1.1 by @dependabot in #515
  • chore(deps): bump graalvm/setup-graalvm from 1.1.4 to 1.1.5 by @dependabot in #512
  • chore(deps): bump step-security/harden-runner from 2.5.1 to 2.6.1 by @dependabot in #511
  • chore(deps): bump bufbuild/buf-setup-action from 1.26.1 to 1.28.1 by @dependabot in #513
  • chore(deps): bump io.micronaut.application from 4.1.1 to 4.2.0 by @dependabot in #525
  • chore(deps): bump actions/setup-node from 3.8.1 to 4.0.0 by @dependabot in #537
  • chore(deps): bump actions/labeler from 4.3.0 to 5.0.0 by @dependabot in #534
  • chore(deps): bump google-github-actions/auth from 1.1.1 to 2.0.0 by @dependabot in #536
  • chore(deps): bump ossf/scorecard-action from 2.2.0 to 2.3.1 by @dependabot in #535
  • chore(deps): bump postcss from 8.4.30 to 8.4.32 by @dependabot in #510
  • chore(deps): bump JetBrains/qodana-action from 2023.2.6 to 2023.2.9 by @dependabot in #516
  • chore(deps): bump org.gradle.wrapper-upgrade from 0.11.1 to 0.11.4 by @dependabot in #524
  • chore(deps): bump io.micronaut.aot from 4.1.1 to 4.2.1 by @dependabot in #533
  • chore: buildless updates by @sgammon in #507
  • chore(deps-dev): bump @types/google-protobuf from 3.15.6 to 3.15.12 by @dependabot in #514
  • chore(deps): bump typescript from 4.9.5 to 5.3.2 by @dependabot in #529
  • chore(deps-dev): bump @mdx-js/loader from 2.2.1 to 3.0.0 by @dependabot in #517
  • Update: JVM 21, Kotlin 1.9.21 by @sgammon in #546
  • chore(deps): bump github/codeql-action from 2.21.9 to 2.22.9 by @dependabot in #547
  • chore(deps): bump actions/setup-java from 3.13.0 to 4.0.0 by @dependabot in #548
  • chore(deps): bump JetBrains/qodana-action from 2023.2.9 to 2023.3.0 by @dependabot in #549
  • chore(deps): bump actions/deploy-pages from 2.0.4 to 3.0.1 by @dependabot in #550
  • chore(deps): bump bufbuild/buf-lint-action from 1.0.3 to 1.1.0 by @dependabot in #551
  • chore(deps-dev): bump prettier from 3.0.3 to 3.1.1 by @dependabot in #552
  • chore(deps): bump gradle/gradle-build-action from 2.9.0 to 2.11.1 by @dependabot in #567
  • chore(deps): bump bufbuild/buf-push-action from 1.1.1 to 1.2.0 by @dependabot in #558
  • chore(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4 by @dependabot in #560
  • chore(deps): bump google-github-actions/setup-gcloud from 1.1.1 to 2.0.1 by @dependabot in #565
  • chore(deps): bump github/codeql-action from 2.22.9 to 3.22.12 by @dependabot in #566
  • Tracking: Kotlin 2.0.0 by @sgammon in #587
  • Feature: WASI Support by @sgammon in #588
  • Feature: Control Protocol by @sgammon in #589
  • [StepSecurity] Apply security best practices by @step-security-bot in #619
  • chore: cleanup and refactor ci into reusable jobs by @sgammon in #614
  • chore(deps): bump actions/dependency-review-action from 4.0.0 to 4.1.0 by @dependabot in #623
  • chore(deps): bump bufbuild/buf-setup-action from 1.28.1 to 1.29.0 by @dependabot in #625
  • feat: overhaul codebase checks by @sgammon in #635
  • [StepSecurity] ci: Harden GitHub Actions by @step-security-bot in #644
  • chore: formatting by @sgammon in #643
  • Fix: Native Compile by @sgammon in ht...
Read more

Elide: Public Alpha

06 Oct 22:58
1.0.0-alpha7
ce358f9
Compare
Choose a tag to compare

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

Alpha v4

04 Aug 22:09
1.0-v3-alpha4-b9
faa3c00
Compare
Choose a tag to compare
Alpha v4 Pre-release
Pre-release

Warning

Elide is still in alpha.

1.0-v3-alpha4-b9: Aug 1st, 2023

Major release of Elide with updated core dependencies, tons of bug fixes, and lots of refactoring with an eye toward
maturity and eventual stable release. Several user-facing CLI features have been added, as well as new support for more
JavaScript intrinsic types.

What's Changed

  • Feature: gRPC Web by @sgammon in #9
  • Chore: Upgrade to Java 17 by @sgammon in #15
  • Feature: SSR Precompiling (JS) by @sgammon in #16
  • Chore: Version Catalogs by @sgammon in #17
  • Chore: Verified Dependencies by @sgammon in #18
  • Add license scan report and status by @fossabot in #20
  • Feature: JS Runtime v2 by @sgammon in #21
  • Feature: Managed Assets by @sgammon in #22
  • Feature: Asset References by @sgammon in #25
  • Feature: Injected Configuration by @sgammon in #30
  • Feature: Builtin Handlers by @sgammon in #31
  • Feature: SSR Shared State by @sgammon in #34
  • Build Refactor / Devops by @sgammon in #57
  • Feature: Deploys by @sgammon in #63
  • Fix: Native SSR Sample by @sgammon in #64
  • Feature: KSP/Compiler Plugins by @sgammon in #81
  • Experimental: Release alpha2 by @sgammon in #106
  • fix(deps): update picocli to v4.7.0 by @renovate in #145
  • fix(deps): update brotli4j to v1.9.0 by @renovate in #143
  • fix(deps): update dependency com.google.api:api-common to v2.4.0 by @renovate in #144
  • chore(deps): update actions/cache action to v3 by @renovate in #141
  • chore(deps): update actions/checkout action to v3 by @renovate in #142
  • fix(deps): update testcontainers to v1.17.6 by @renovate in #146
  • chore(deps): update versioncheck to v0.44.0 by @renovate in #147
  • fix(deps): update arrow to v1.1.3 by @renovate in #148
  • fix(deps): update gson to v2.10.1 by @renovate in #149
  • Omnibus fixes for alpha2 by @sgammon in #152
  • chore: cleanup JS runtime v2 by @sgammon in #157
  • fix(deps): update dependency org.postgresql:postgresql to v42.5.1 by @renovate in #158
  • fix(deps): update dependency io.micronaut.redis:micronaut-redis-lettuce to v5.3.2 by @renovate in #155
  • fix(deps): update dependency io.lettuce:lettuce-core to v6.2.2.release by @renovate in #154
  • fix(deps): update dependency io.projectreactor:reactor-bom to v2022.0.2 by @renovate in #156
  • fix(deps): update kotlinx: wrappers by @renovate in #159
  • Chore: Cleanup JS Runtime v2 (Part II) by @sgammon in #161
  • Feature: JS Runtime Injection by @sgammon in #167
  • Feature: Elide website by @sgammon in #173
  • Site: SEO bugfixes, mobile styles by @sgammon in #180
  • Chore: Build Caching by @sgammon in #211
  • chore: fix build cache push from ci build by @sgammon in #215
  • chore: upgrade Kotlin → 1.8.20 by @sgammon in #214
  • chore: release on central, upgrade micronaut → 3.8.8 by @sgammon in #218
  • chore(deps): update gradle/gradle-build-action action to v2.4.2 [security] by @renovate in #229
  • chore: cleanup and update gradle by @sgammon in #242
  • chore(deps): bump gradle/gradle-build-action from 2.4.2 to 2.6.0 by @dependabot in #241
  • chore(deps): bump actions/upload-pages-artifact from 1 to 2 by @dependabot in #243
  • fix(deps): update picocli to v4.7.4 by @renovate in #251
  • chore(deps): bump gradle/wrapper-validation-action from 1.0.5 to 1.1.0 by @dependabot in #245
  • chore(deps): bump actions/deploy-pages from 1 to 2 by @dependabot in #203
  • chore(deps): bump @mdx-js/preact from 2.2.1 to 2.3.0 by @dependabot in #231
  • chore(deps): update plugin org.gradle.toolchains.foojay-resolver-convention to v0.6.0 by @renovate in #254
  • chore(deps): update us-docker.pkg.dev/elide-fw/tools/base:latest docker digest to e350485 by @renovate in #262
  • chore(deps): update us-docker.pkg.dev/elide-fw/tools/base/alpine docker digest to 19d5f4a by @renovate in #261
  • chore(deps): update dependency com.google.cloud.tools.jib to v3.3.2 by @renovate in #263
  • chore(deps): update jetbrains/qodana-jvm:2022.1-eap docker digest to da4f13e by @renovate in #260
  • chore(deps): update nodeplugin to v3.6.0 by @renovate in #265
  • fix(deps): update kotlinx.serialization to v1.5.1 by @renovate in #248
  • fix(deps): update netty.tcnative to v2.0.61.final by @renovate in #250
  • fix(deps): update kotlinx.coroutines to v1.7.2 by @renovate in #247
  • fix(deps): update graalvm.sdk to v23.0.1 by @renovate in #246
  • fix(deps): update dependency org.fusesource.jansi:jansi to v2 by @renovate in #268
  • fix(deps): update dependency org.openrewrite:plugin to v6 by @renovate in #269
  • fix(deps): update netty monorepo to v4.1.95.final by @renovate in #249
  • chore(deps): update kotlinx.abivalidator to v0.13.2 by @renovate in #252
  • chore(deps): update plugin com.gradle.enterprise to v3.14 by @renovate in #253
  • chore(deps): update versioncheck to v0.47.0 by @renovate in #255
  • chore(deps): update actions/cache digest to 88522ab by @renovate in #256
  • chore(deps): update actions/checkout digest to c85c95e by @renovate in #257
  • chore(deps): update debian:bullseye docker digest to 3b6053c by @renovate in #258
  • chore(deps): update dependency me.champeau.jmh to v0.7.1 by @renovate in #288
  • chore(deps): update dependency org.jetbrains.kotlin.plugin.dataframe to v0.11.0 by @renovate in #289
  • chore(deps): update dependency prettier-plugin-java to v2.2.0 by @renovate in #290
  • fix(deps): update arrow to v1.2.0 by @renovate in #293
  • chore(deps): update dependency org.sonarqube to v4 by @renovate in #313
  • fix(deps): update dependency org.apache.commons:commons-csv to v1.10.0 by @renovate in #302
  • fix(deps): update dependency com.guardsquare:proguard-gradle to v7.3.2 by @renovate in #300
  • fix(deps): update dependency org.apache.commons:commons-compress to v1.23.0 by @renovate in #301
  • fix(deps): update dependency com.google.api:gax to v2.31.1 by @renovate in #299
  • chore(deps): update dependency gradle to v8.2.1 by @renovate in #312
  • fix(deps): update koin by @renovate in #307
  • fix(deps): update grpc.java to v1.56.1 by @renovate in #304
  • fix(deps): update jackson to v2.15.2 by @renovate in #305
  • fix(deps): update jline to v3.23.0 by @renovate in #306
  • fix(deps): update brotli4j to v1.12.0 by @renovate in #296
  • chore(deps): update dependency com.github.node-gradle.node to v5 by @renovate in #311
  • fix(deps): update auto.service to v1.1.1 by @renovate in #295
  • fix(deps): update dependency org.xerial.snappy:snappy-java to v1.1.10.3 by @renovate in #282
  • fix(deps): update swagger to v2.2.15 by @renovate in #285
  • fix(deps): update truth to v1.1.5 by @renovate in #286
  • chore(de...
Read more