Skip to content

Releases: suborbital/e2core

Beta-2.2

09 Apr 12:39
2224658
Compare
Choose a tag to compare

Beta-2.2 brings a number of small improvements:

  • Atmo can now be launched without a bundle present using either the --wait flag or the ATMO_WAIT=true variable. This allows a bundle to be uploaded after-the-fact, facilitating deployments like the new experimental Kubernetes deployment
  • Atmo's HTTP port configuration is now respected by the LetsEncrypt challenge server, with the new default port set to 8080.
  • During startup, Atmo's logs will now be more helpful.

Beta-2.1

02 Apr 21:06
1c0f665
Compare
Choose a tag to compare

This release fixes some rare crashes and improves the handling of HTTP requests that result in an error.
An upgrade to the Runnable API v0.9.2 is reccomended but not required.

Beta-2

25 Mar 00:29
b041bf5
Compare
Choose a tag to compare

Welcome to Atmo Beta-2!

This release contains a number of highly requested features along with some big performance and internal architecture improvements which will further accelerate the pace at which Atmo can be developed.

Notes:

  • Atmo Beta-2 uses version 0.9.0 or higher of the Runnable API, you will need to update your Runnables to use this new version. Update Cargo.toml or Package.swift for each Runnable to use the new version and update your code to use the updated API methods.
  • The with clause has been modified from an array of strings to a map, so you will need to update any with instances accordingly. For example: -"user: userobject" would become user: userobject.
  • Subo Alpha-15 or above is required to build applications for Atmo Beta-2, please update the tool by following the install instructions from the Subo readme again.

Now, onto the fun stuff!

Scheduled jobs

Atmo can now run scheduled background jobs! Using the new schedules section of the Directive, you can define several jobs to be run at an interval that you control. For example, cleanup tasks, scheduled reporting, and more work perfectly as background jobs. Schedules are a set of composed Runnables, exactly like the Atmo handlers you're used to building. You can use all of the state management and error handling tools available to handlers. You can read all about schedules in the docs.

Error handling

The most requested feature from Beta-1 was the ability to return and handle errors from your Runnables! Runnables can now return an error (Swift support is coming soon), which is comprised of an error code and a message. When an error is returned from a Runnable in one of your handlers or schedules, it can be handled using the new onErr clause in the Directive. You can choose to return or continue for all errors returned by a Runnable (default behaviour is to return), or choose what to do based on error code (for example, 404: continue, 401: return). Error handling is detailed in the docs.

ForEach steps

Until now, a step in your handlers could either be a single fn or a group. There is now a third type forEach which allows iterating over an array in state. You can use a forEach step to execute a Runnable against each element in a JSON array, which is extremely useful for performing batch operations, fanout operations, and more. You can read about forEach in the docs.

Response headers and ContentType

Runnables can now set response headers using the resp::set_header API method, and the specific resp::content_type alias for setting Content-Type. This is extremely useful when serving static files such as .js, .css, and .wasm! Integrations with common web frameworks with static generation functionality will be coming soon, starting with the Yew framework for full-stack WebAssembly applications! Read about response headers in the docs.

Performance improvements

Atmo Beta-2 is running on the latest version of Reactr, which itself includes a whole host of performance improvements down to the lowest level, which is especially evident when working with large pieces of data.

Operational improvements

You can now use environment variables to control more of Atmo's behaviour, such as log level, execution of schedules, and more. Read all about it in the docs.

Beta-1

18 Feb 02:14
v0.1.0
215d8b0
Compare
Choose a tag to compare

It's Beta time!

Atmo has finally reached beta! This release brings some awesome new features, so I'll cut right to the chase:

  • Multi-arch support: Atmo can now run on x86 or arm64! Docker images are provided for each, making it easy to run Atmo on Raspberry Pi. Mac with Apple Silicon will be coming soon as well.

  • Ability to serve static files: The static directory in an Atmo project will now be copied into the Bundle, and Runnables can now access those files via a read-only pseudo-filesystem using the Runnable API! This brings Atmo a step closer to being the perfect solution for JAMStack applications.

  • Improved docs: The Atmo guide is now greatly improved and includes full documentation for the Runnable API.

  • Wasmer 1.0: With the release of Reactr came support for Wasmer 1.0, and now Atmo can take advantage of all the benefits that has to offer as well! Performance across the board is much improved, and it will help improve development pace in the future as well

Atmo has come a long way and finally joins its sibling projects with its Beta status. There are some more awesome features and improvements on their way, including support for more languages like AssemblyScript!

Alpha-7

05 Feb 13:55
v0.0.7
6932712
Compare
Choose a tag to compare
Alpha-7 Pre-release
Pre-release

This release brings in the latest version of the Runnable API (v0.5.0) which brings more HTTP request capabilities to Runnables!

Using this version, update all of your .runnable.yaml, cargo.lock, and Package.swift files to use 0.5.0 of the API.

Alpha-6

23 Jan 19:42
v0.0.6
ca54df1
Compare
Choose a tag to compare
Alpha-6 Pre-release
Pre-release

This release brings in the latest Directive spec and the latest version of the Hive scheduler to allow for pre-warmed Runnables! This will reduce cold starts for "expensive" Runnables (such as Swift modules) to near-0!

Update your Directive:
version field becomes appVersion
Add the atmoVersion field and set it to "v0.0.6"

Alpha-5

16 Jan 21:03
v0.0.5
0542c92
Compare
Choose a tag to compare
Alpha-5 Pre-release
Pre-release

This release pulls in the latest version of the Wasm runtime, fixing an issue related to memory management in Swift Runnables.

Alpha-4

16 Jan 17:38
v0.0.4
266bf80
Compare
Choose a tag to compare
Alpha-4 Pre-release
Pre-release

This release brings the latest version of the Runnable API to Atmo, with full support for Swift!

The Swift Runnable library has been updated to be feature-equivalent with the Rust crate.

Runnables must update to version 0.4.0 of the API, as this is a breaking change and 0.3.x is no longer supported.

Alpha-3

02 Jan 00:09
v0.0.3
d8704a5
Compare
Choose a tag to compare
Alpha-3 Pre-release
Pre-release

Alpha-3 brings new clauses to the Directive: as and with!

as can be used to define the key that a function's return value gets set to in state, similar to "setting a variable"

with can create a scoped state to pass into any function, essentially allowing for "function arguments"

See the docs for details!

Alpha-2

16 Dec 02:43
851a8fd
Compare
Choose a tag to compare
Alpha-2 Pre-release
Pre-release

This release includes updated versions of Hive, Grav, and Vektor and improves the example Runnables.