Skip to content

v0.10.2

Choose a tag to compare

@gzurl gzurl released this 12 Jan 15:22
· 91 commits to main since this release

0.10.2 (2023/01/09)

libwasm_runtime.so

  • Dependencies:
    • Bump version dependencies:
      • wasmtime to 4.0.0.
        • As a consequence, update code to invoke get_typed_func<Params, Results>() with only two arguments.
      • anyhow to 1.0.66.
      • once_cell to 1.17.0.
    • Updated cargo.lock dependencies via cargo update.

0.10.1 (2022/12/12)

mod_wasm.so

  • All logging is now properly route to ap_log_error(), ap_log_perror() and ap_log_rerror().
  • Apache-2.0 extended license headers.
  • Only C89 comments (/* */).

libwasm_runtime.so

  • Dependencies:
    • Bump version dependencies:
      • wasmtime to 3.0.1.
    • Updated cargo.lock dependencies via cargo update.

0.10.0 (2022/11/28)

  • In this version, among other improvements, we introduce two major features implementing #6, #7, and #16.

    1. Wasm multi-module support:

      Now you can specify different Wasm modules to be used in different routes. For instance, now it’s possible with one-single Apache instance to load simultaneously the Wasm builds for the PHP and Python interpreters (and any other languages that compile to Wasm now or in the future).

    2. Shared Wasm modules:

      Now you can specify different per-route configurations to the same Wasm module. The Wasm binary is loaded in memory only once, and the different configurations are applied to the Wasm module per-HTTP request. Also, now each Wasm execution owns its own stdout buffer, so there are no interlocks between executions anymore.

    Combining all together, you can now have a more flexible configuration such as:

    <Location /wordpress> 
        SetHandler wasm-handler 
        WasmModule /var/www/modules/php7.4.32.wasm 
        WasmDir    /tmp 
        … 
    </Location> 
    
    <Location /python-app> 
        SetHandler wasm-handler 
        WasmModule /var/www/modules/python3.11.wasm 
        WasmArg    /var/www/python-app/app.py 
        … 
    </Location> 
    
    <Location /python-app2> 
        SetHandler wasm-handler 
        WasmModule /var/www/modules/python3.11.wasm 
        WasmArg    /var/www/python-app2/app2.py 
        … 
    </Location> 

mod_wasm.so

  • Removed the WasmRoot directive. Now, WasmModule accepts the full Wasm module filepath.
  • Removed legacy code:
    • In previous versions, given the only-one Wasm module limitation, mod_wasm.c implemented a mechanism to reset the WASI context for each HTTP request. This is not needed anymore.
    • Old code inherited from mod_example_hooks.c and not used.

libwasm_runtime.so

  • C-API:
    • Reorganized functions and their names to be compliant with the new features and to be more idiomatic (🚨 breaks backwards compatibility 🚨).
    • Removed any kind of logic different from C <---> Rust FFI data transformation.
    • Improved error messages with more information.
  • Fixed most suggestions from cargo clippy -- -W clippy::pedantic.
  • Dependencies:
    • Bump version dependencies:
      • wasmtime to 3.0.0.
      • once_cell to 1.16.0.
    • New dependency:
      • rand to 0.8.5.
    • Updated cargo.lock dependencies via cargo update.