Skip to content

v0.10.0

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Jul 01:49
· 2 commits to main since this release
f95f926

🧩 The Module Update

This update combines several improvements to the core API, marking a major milestone towards the 1.0 release. We are so back.

The main install is now a single telem.lua file. Vendor dependencies previously in vendor.lua are now combined with the core API.

A new module loader has been added for building inputs, outputs, and middleware. The loader supports single-file or multi-file formats, as well as a compressed Luz format for very large sources. An upcoming release will formalize the module API and add documentation; for now, take a look at the cobbled-together quick start guide: https://github.com/cyberbit/telem-modules/wiki/Module-Quick-Start

Custom input/output/middleware can now be added to Backplane as functions, without needing to wrap in telem.input.custom() or equivalent.

Backplane now reads inputs in parallel! This is thanks to a revolutionary new idea called "good design" that I was unfamiliar with when I started this project. Most input integrations have been refactored to execute their peripheral calls in parallel. Cycle execution time is no longer tightly correlated to the number of metrics (in my test world it is upwards of 50x faster for 7 Mekanism machines). To avoid CC event overflow, input reads are executed in batches, though the batching is not very smart and will likely be revised.

Mod integrations have been migrated to the telem-modules repository. This was done for a number of reasons, many of my thoughts are on #85. Navigation on the documentation site has been updated slightly to reflect this (Input/Advanced Peripherals -> Input/Modules/Advanced Peripherals). To ease the transition, the updated installer downloads all mod integrations automatically, in the release flavor selected. In the future, modules will be opt-in and configurable.

"And there was much rejoicing"

Internal

  • Update build script to emit one file with combined core + vendor dependencies

Installer

  • Update installer for single-file build
  • Add module download to installer
  • Add parallel downloading to installer
  • Remove installer dependency on custom download proxy

Dependencies

  • Add lazy initialization to vendor loader
  • Add Luz decompressor by MCJack123
  • Fluent: Add 1 chainable method to Fluent entrypoint

API

  • Add module loader
  • Add module autoload to library entrypoint

Backplane

  • Update addInput, addOutput, and middleware to directly accept functions for custom adapters and middleware (#86)
  • Update cycle to read inputs in parallel (#87)

Inputs

Full Changelog: v0.9.1...v0.10.0