Skip to content

Commit ef5ded8

Browse files
chore: v0.12.0-beta.0
Signed-off-by: Henry <mail@henrygressmann.de>
1 parent 29f10d6 commit ef5ded8

5 files changed

Lines changed: 31 additions & 23 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
### Added
10+
## [0.12.0-beta.0] - 2026-11-01
1111

12-
- Added WebAssembly threads support, including atomic wait/notify and cross-store shared memory with `MemoryShared`.
13-
- Added new `Memory::data` and `Memory::data_mut` methods for direct access to linear memory.
14-
- Added an experimental C API in `tinywasm-c-api`.
15-
- Added parse-time resource limits and configurable fuel checkpoints.
16-
- Added `nightly` to enable all supported nightly optimizations, with automatic compiler capability detection.
17-
- Added nightly float intrinsics and portable Wasm math for `no_std`, removing the `libm` dependency.
12+
Preliminary x86-64 benchmarks show around a 20% performance improvement over 0.11.0 on nightly, depending on the workload.
1813

1914
### Breaking Changes
2015

@@ -24,9 +19,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2419
- Stack limits now enforce `StackConfig::max_size` even when the allocation has spare capacity.
2520
- Changed public bytecode/module types and the `.twasm` format. Regenerate archives created with 0.11.0.
2621

22+
### Added
23+
24+
- Added initial WebAssembly threads support, including atomic wait/notify and cross-store shared memory with `MemoryShared`.
25+
- Added an experimental C API in `tinywasm-c-api`.
26+
- Added new `Memory::data` and `Memory::data_mut` methods for direct access to linear memory.
27+
- Added `Function::from_func_ref` to resolve a function reference into a callable handle.
28+
- Added `ParseLimits` to configure parse-time resource limits.
29+
- Added `ParserOptions::with_checkpoint_interval` to configure how often execution checks its fuel budget.
30+
- Added `nightly` to enable all supported nightly optimizations, with automatic compiler capability detection.
31+
- Added nightly float intrinsics and portable Wasm math for `no_std`, removing the `libm` dependency.
32+
2733
### Fixed
2834

2935
- Restore store state after a panic in a function call, allowing subsequent calls and preventing invalid resumption.
36+
- Reject imported memories without a declared maximum when the importing module requires one.
37+
- Fix `tinywasm-wasi` compilation on Windows.
3038

3139
## [0.11.0] - 2026-09-19
3240

‎Cargo.lock‎

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ members = ["crates/*"]
1111
default-members = [".", "crates/parser", "crates/tinywasm", "crates/types", "crates/wasi"]
1212

1313
[workspace.package]
14-
version = "0.11.0"
14+
version = "0.12.0-beta.0"
1515
edition = "2024"
1616
rust-version = "1.98"
1717
homepage = "https://tinywasm.dev"
@@ -21,10 +21,10 @@ keywords = ["interpreter", "no-std", "tinywasm", "wasm", "webassembly"]
2121
categories = ["compilers", "embedded", "no-std", "virtualization", "wasm"]
2222

2323
[workspace.dependencies]
24-
tinywasm = { path = "crates/tinywasm", version = "0.11.0", default-features = false }
25-
tinywasm-parser = { path = "crates/parser", version = "0.11.0", default-features = false }
26-
tinywasm-types = { path = "crates/types", version = "0.11.0", default-features = false }
27-
tinywasm-wasi = { path = "crates/wasi", version = "0.11.0" }
24+
tinywasm = { path = "crates/tinywasm", version = "0.12.0-beta.0", default-features = false }
25+
tinywasm-parser = { path = "crates/parser", version = "0.12.0-beta.0", default-features = false }
26+
tinywasm-types = { path = "crates/types", version = "0.12.0-beta.0", default-features = false }
27+
tinywasm-wasi = { path = "crates/wasi", version = "0.12.0-beta.0" }
2828

2929
anyhow = "1.0"
3030
log = "0.4"

‎README.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
- **Portable**: Runs anywhere Rust can target, supports `no_std`, has minimal dependencies[^dependencies]
99
- **Safe**: Written entirely in safe Rust[^unsafe].
1010

11-
[^dependencies]: The two main external components are [`wasmparser`](https://crates.io/crates/wasmparser) for WebAssembly parsing and validation, and [`postcard`](https://crates.io/crates/postcard) for `.twasm` archives.
11+
[^dependencies]: WebAssembly parsing and validation use [`wasmparser`](https://crates.io/crates/wasmparser), and `.twasm` archives use [`postcard`](https://crates.io/crates/postcard).
1212

1313
[^unsafe]: The `simd-intrinsics` feature uses `unsafe` internally for selected architecture-specific SIMD implementations.
1414

1515
## Installation
1616

1717
```toml
1818
[dependencies]
19-
tinywasm = "0.11.0"
19+
tinywasm = "0.12.0-beta.0"
2020
```
2121

2222
## Usage
@@ -104,7 +104,7 @@ TinyWasm generally implements non-JavaScript core proposals at [phase 4](https:/
104104
| [**Garbage Collection**](https://github.com/WebAssembly/gc) | 🟢 | 0.11.0 |
105105
| [**Exception Handling**](https://github.com/WebAssembly/exception-handling) | 🟢 | 0.11.0 |
106106
| [**Compact Import Section**](https://github.com/WebAssembly/compact-import-section) | 🟢 | 0.11.0 |
107-
| [**Threads**](https://github.com/WebAssembly/threads)[^threads] | 🟢 | next |
107+
| [**Threads**](https://github.com/WebAssembly/threads)[^threads] | 🟢 | 0.12.0-beta.0 |
108108

109109
[^threads]: Shared memory and blocking atomic wait/notify require `std`.
110110

‎crates/bench/Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ harness = false
99
name = "suite"
1010

1111
[dependencies]
12-
tinywasm = { workspace = true, features = ["full", "std"] }
12+
tinywasm = { workspace = true, features = ["full", "nightly", "std"] }
1313

1414
[dev-dependencies]
1515
criterion.workspace = true

0 commit comments

Comments
 (0)