Releases: biowasm/aioli
Aioli 3.2.1
Aioli 3.2.0
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
Aioli 3.0.0
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
- Revamped documentation page to make it easier to get started: https://biowasm.com/documentation
- Added package listing that contains sample code for every tool, as well as download links: https://biowasm.com/cdn/v3
Aioli 2.4.1
What's new
- Small fix to
aioli.js
path inpackage.json
(thanks to @happykhan)
Aioli 2.4.0
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 themain()
function) - New utility function
cd
to change working directory of all tools at once
Aioli 2.3.0
Aioli 2.2.0
What's new
- Automatically flushes
stdout
andstderr
so thatprintf
statements that don't include a\n
are still returned when we call theexec()
function. For example, in previous Aioli versions, a command likebcftools query -f "%ALT\n"
would work butbcftools query -f "%ALT"
would not return anything until you called another command that output a\n
!
Aioli 2.1.0
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
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.