elide

fast polyglot runtime

MIT License

Stars
100

Bot releases are hidden (Show)

elide - Elide: Alpha 10 Latest Release

Published by sgammon 4 months ago

Release Notes

Version: 1.0.0-alpha10

This release is focused on (1) bugfixes and general stability, (2) Node API support, and (3) TypeScript support. Additionally, Elide's native layer has undergone an overhaul, with Static JNI offering a new path forward with lower call overhead and no library unpack step.

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

Installation

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

Special Thanks

  • EJ Technologies, for sponsoring Elide with a license for JProfiler. Thank you!
  • Cloudflare, Google, Nvidia, Microsoft, Equinix, and Amazon AWS, for sponsoring Elide with compute. Thank you!
  • 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!
  • Konstantin, Elide's intern, for helping build and test Elide. Thank you!

Change Summary

  • Native support for TextEncoder / TextDecoder
  • Native support for SQLite
  • Execution support for TypeScript
  • process.stdout, process.stderr, other enhancements to the process global
  • Much faster startup speed: improved by over 100ms on all platforms
  • Much better memory usage for embedded VFS
  • Faster I/O for layered VFS
  • Many engine improvements
    • Support for Static JNI on macOS (Linux coming soon!)
    • Static initialization compatibility for all of Elide

Notable Dependency Upgrades

  • Kotlin → 2.0.0

[!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

Full Changelog: https://github.com/elide-dev/elide/compare/1.0.0-alpha9...1.0.0-alpha10

elide - Elide: Alpha 9

Published by sgammon 5 months ago

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

Full Changelog: https://github.com/elide-dev/elide/compare/1.0.0-alpha8...1.0.0-alpha9

elide - Elide: Alpha 8

Published by sgammon 6 months ago

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

Full Changelog: https://github.com/elide-dev/elide/compare/1.0.0-alpha7...1.0.0-alpha8

elide - Elide: Public Alpha

Published by sgammon about 1 year ago

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

Full Changelog: https://github.com/elide-dev/elide/compare/1.0-v3-alpha5-b13...1.0.0-alpha7

elide - Alpha v4

Published by sgammon about 1 year ago

[!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

New Contributors

Full Changelog: https://github.com/elide-dev/elide/commits/1.0-v3-alpha4-b9