You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit eb833bc
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: README.md
+6-7Lines changed: 6 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,12 +5,12 @@
5
5
## Why `tinywasm`?
6
6
7
7
-**Tiny**: Small by design, while still passing the full WebAssembly 3.0 core test suite.
8
-
-**Portable**: Runs anywhere Rust can target, supports `no_std`, has minimal dependencies[^dependencies], and can itself compile to WebAssembly.
9
-
-**Safe by default**: Written entirely in safe Rust[^unsafe].
8
+
-**Portable**: Runs anywhere Rust can target, supports `no_std`, has minimal dependencies[^dependencies]
9
+
-**Safe**: Written entirely in safe Rust[^unsafe].
10
10
11
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.
12
12
13
-
[^unsafe]: The optional `simd-x86` feature is the only exception. It uses `unsafe` internally for selected x86 SIMD intrinsics.
13
+
[^unsafe]: The `simd-intrinsics` feature uses `unsafe` internally for selected architecture-specific SIMD implementations.
14
14
15
15
## Installation
16
16
@@ -58,11 +58,10 @@ See the [examples](./examples) directory and [documentation](https://docs.rs/tin
58
58
-**`canonicalize-nans`:** Uses a [canonical NaN](https://en.wikipedia.org/wiki/NaN#Canonical_NaN) for normalized NaN results.
59
59
-**`debug`:** Derives `Debug` for runtime types. Enabled by default.
-**`nightly-tail-calls`:** Uses Rust's unstable explicit tail calls for interpreter dispatch. Requires nightly Rust (recommended for maximum performance).
62
-
-**`nightly-rust-preserve-none`:** Uses Rust's experimental preserve-none ABI for x86_64 and 64-bit AArch64 tail-call handlers. Requires nightly Rust (recommended for maximum performance).
63
-
-**`simd-x86`:** Enables x86-specific SIMD intrinsics and uses `unsafe` internally.
61
+
-**`nightly`:** Enables all supported nightly-only optimizations. Enabled by default, with compiler capability detection and a stable fallback.
62
+
-**`simd-intrinsics`:** Enables architecture-specific SIMD implementations where available, using `unsafe` internally. Enabled by default. Safe Wasm SIMD remains automatic.
64
63
65
-
With default features disabled, `tinywasm` supports `no_std + alloc` and depends only on `libm`.
64
+
With default features disabled, `tinywasm` supports `no_std + alloc` and its runtime depends only on `libm`.
66
65
67
66
Use [`Engine`](https://docs.rs/tinywasm/latest/tinywasm/engine/struct.Engine.html) and [`engine::Config`](https://docs.rs/tinywasm/latest/tinywasm/engine/struct.Config.html) for non-default fuel accounting, stack sizing, or GC collection thresholds. A configured `ResourceLimiter` can allow, reject, or trap memory and table allocation or growth requests, and GC object allocations.
0 commit comments