Skip to content

Releases: biowasm/aioli

Aioli 3.2.1

14 Oct 19:04
Compare
Choose a tag to compare

What's new

  • Do not accumulate stdout/err if streaming by @Wytamma in #48

New Contributors

Full Changelog: v3.2.0...v3.2.1

Aioli 3.2.0

15 Aug 15:07
Compare
Choose a tag to compare

What's new

  • Add stdout/stderr streaming config option printStream by @daniel-ji in #38
  • Create separate function for reinit by @daniel-ji in #42

Aioli 3.1.0

17 Sep 20:05
Compare
Choose a tag to compare

What's new

  • Fix bug where mounting a File object returned duplicate file paths - #34
  • Add utility functions to Aioli to make it easier to use Emscripten's virtual file system's read() and write() function - #35

Aioli 3.0.0

19 Aug 17:29
Compare
Choose a tag to compare

What's new

The improvements in v3 are focused on speeding up initialization time:

Removed aioli.worker.js

In v2, Aioli had to download a separate .js file that contained the WebWorker logic. In v3, that WebWorker logic is embedded directly into the Aioli npm library, so no additional downloads are needed.

Removed config.json files

In v2, Aioli downloaded a config.json file for every tool it initialized. Since this file has only been used to specify WebAssembly features (simd, threads), which are rarely used, these files have been removed. For tools like sandbox.bio/playground that load a lot of tools at once, this means much faster load times!

Removed base module

In v2, Aioli used a mock base module as the main WebAssembly module where all file system operations run. For convenience, this was removed in v3 for the majority of cases, where instead one of the tools is treated as the base module. Only if Aioli can't find any tool with reinit: false will the base module be required, which is unlikely.

Support for custom stdin

If you're running a tool that needs access to "stdin", you can now set it explicitly using CLI.stdin = "Hello" before calling the tool of interest.

Revamped website

Aioli 2.4.1

09 Aug 15:53
ffc6582
Compare
Choose a tag to compare

What's new

  • Small fix to aioli.js path in package.json (thanks to @happykhan)

Aioli 2.4.0

16 Sep 23:31
a3dae2b
Compare
Choose a tag to compare

What's new

  • Ability to lazy-load WebAssembly modules enhancement #32
  • Log errors to console when calling main() #31
  • New config reinit that when enabled, reinitializes the Wasm module after every exec (useful if you can't reset the global state between calls to the main() function)
  • New utility function cd to change working directory of all tools at once

Aioli 2.3.0

06 Sep 22:43
0f5e9d2
Compare
Choose a tag to compare

What's new

  • Ability to provide custom arguments for main() #29
  • Speed up initialization times by parallelizing downloads #27

Aioli 2.2.0

18 Aug 14:53
Compare
Choose a tag to compare

What's new

  • Automatically flushes stdout and stderr so that printf statements that don't include a \n are still returned when we call the exec() function. For example, in previous Aioli versions, a command like bcftools query -f "%ALT\n" would work but bcftools query -f "%ALT" would not return anything until you called another command that output a \n!

Aioli 2.1.0

16 Aug 20:16
Compare
Choose a tag to compare

What's new

  • Add the ability to specify a callback function that is called whenever we receive a message from the WebWorker (where message type = biowasm).

Aioli 2.0.0

22 Jul 23:26
Compare
Choose a tag to compare

What's new

  • Multiple bioinformatics tools can now share the same virtual filesystem, without copying data between tools! To do so, we use the PROXYFS filesystem.
  • When mounting local files from a user's computer, those have to be mounted to a read-only virtual filesystem so we don't need to load their entire contents into memory. This update also creates a symlink for each such file in a writeable directory. TL;DR we now support commands like samtools index, which expect the ability to write in the input folder
  • New architecture: launch a single WebWorker and run all tools in it (previously, we would launch 1 WebWorker per tool). We use -s MODULARIZE=1 when compiling to WebAssembly so each tool is isolated.
  • Now using Comlink for WebWorker communication instead of managing the message passing in Aioli, which greatly simplified the code.

See biowasm/biowasm#48 for details.

Backwards compatibility

You can keep using Aioli v1, and the biowasm CDN v1 will remain up for now.