Skip to content

Commit 51cb7d8

Browse files
docs: improve rusdoc / readme / changelog
Signed-off-by: Henry <mail@henrygressmann.de>
1 parent 4984405 commit 51cb7d8

14 files changed

Lines changed: 128 additions & 141 deletions

File tree

‎ARCHITECTURE.md‎

Lines changed: 0 additions & 65 deletions
This file was deleted.

‎CHANGELOG.md‎

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,44 +9,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12-
- Support for the function-references, garbage-collection, exception-handling, and compact-imports proposals.
13-
- Store-aware owned references, explicit GC collection, and typed host access to GC objects and exceptions.
14-
- `WasmValue::ty`, `WasmValue::matches_type`, and `ValueLane` for inspecting value types and storage lanes.
15-
- `ResourceLimiter` for limiting guest memory, table, and logical GC heap growth.
16-
- A default `validate` Cargo feature that can be disabled when parsing trusted modules.
17-
- Optional parse-time operand deduplication for smaller `.twasm` archives.
12+
- Support for the typed function references, garbage collection, exception handling, and compact import section proposals.
13+
- `ResourceLimiter` callbacks for memory and table allocation or growth
14+
- A default `validate` Cargo feature & parser option to skip wasm validation
15+
- Optional parse-time operand deduplication to reduce `.twasm` archive size
1816

1917
### Changed
2018

21-
- Typed functions support tuples up to arity 20 and `[u8; 16]` values for `v128`.
22-
- Module types use one recursive type space, with runtime function types available through `Function::ty(&Store)`.
23-
- Linear memory uses contiguous `Vec`-backed storage.
24-
- The minimum supported Rust version is 1.98.
19+
- Typed functions now support tuples up to arity 20 and `[u8; 16]` values for `v128`.
20+
- Module types now use one recursive type space. Runtime function types are available through `Function::ty(&Store)`.
21+
- Linear memory now uses contiguous `Vec`-backed storage.
22+
- The minimum supported Rust version increased from 1.95 to 1.98.
23+
- The internal instruction represetaions size was reduced from 16 to 8 bytes.
2524

2625
### Fixed
2726

28-
- Directly defined imports now reject handles from a different `Store`.
27+
- Instantiation now rejects directly defined imports that contain handles from another `Store`.
2928
- Tail calls to host functions now return directly to the caller frame.
30-
- Fixed Memory64 bulk-memory operations and optimized stores using the wrong value-stack lane.
31-
- Fixed `memory.init` bounds checks and operand lowering.
32-
- Fixed Memory64 default limits and host-size handling, including 32-bit targets.
29+
- Memory64 bulk-memory operations and optimized stores now use the correct value-stack lanes.
30+
- `memory.init` now performs correct bounds checks and operand lowering.
31+
- Memory64 now uses the correct default limits and host-size conversions, including on 32-bit targets.
3332

3433
### Breaking Changes
3534

36-
- Dynamic `Function::call` and `Function::call_resumable` calls write to caller-provided result slices. Untyped host callbacks also receive a result slice and return `Result<()>`.
37-
- `HostFunction` definitions are reusable, require `Send + Sync`, and no longer take a `Store`.
38-
- Module instantiation borrows `Imports`, allowing imports to be shared across stores.
35+
- `Function::call` and `Function::call_resumable` now write to caller-provided result slices. Untyped host callbacks also receive a result slice and return `Result<()>`.
36+
- Creating a `HostFunction` no longer requires a `Store`. Definitions require `Send + Sync` and can be reused across stores. Module instantiation now borrows `Imports` so the same imports can also be reused.
3937
- `HostFunction::ty` and `WasmFunction::ty` were removed. Use `Function::ty(&Store)` for runtime types.
40-
- Function and managed reference handles are Store-aware. Managed references keep their referents live, and `WasmValue` is no longer `Copy`.
41-
- Nullable typed reference parameters and results use `Option<T>`. Bare typed references are non-null.
42-
- Host references are created with `ExternRef::try_new` and `I31Ref::try_new`. Reference and GC object access is provided by methods on each reference type.
43-
- Fallible `Memory`, `Table`, `Global`, and `Tag` constructors are named `try_new`.
44-
- `Store::id` returns `u32`, and `ModuleInstanceAddr` is renamed to `ModuleInstanceId`.
45-
- Table element types use `RefType`, and module table definitions use `TableDefinition { ty, init }`.
46-
- `Parser::new` takes `ParserOptions`. Use `Parser::default()` for default settings. `Parser::with_options` and local-memory allocation analysis were removed.
47-
- Pluggable memory backends and `Config::with_trap_on_oom` were removed. Linear memory is always `Vec`-backed, and allocation limits use `ResourceLimiter`.
48-
- `Table::grow` returns `Result<Option<usize>>`, matching `Memory::grow`.
38+
- Function and managed reference handles are tied to their originating `Store`. Managed references keep their referents live, so `WasmValue` is no longer `Copy`. Nullable typed references use `Option<T>`, while bare typed references are non-null.
39+
- The `Memory`, `Table`, `Global`, and `Tag` constructors were renamed from `new` to `try_new`.
40+
- `Store::id` now returns `u32`, and `ModuleInstanceAddr` was renamed to `ModuleInstanceId`.
41+
- Element types now use `RefType`, and module definitions use `TableDefinition { ty, init }`. `Table::grow` now returns `Result<Option<usize>>`, matching `Memory::grow`.
42+
- `Parser::new` now takes `ParserOptions`. Use `Parser::default()` for default settings. `Parser::with_options` was removed.
43+
- Pluggable memory backends and `Config::with_trap_on_oom` were removed for performance reasons. Linear memory is always `Vec`-backed. Use `ResourceLimiter` to allow, reject, or trap memory allocation and growth requests.
4944
- `WasmTupleChain` was removed. Use direct tuples up to arity 20 or untyped functions for larger signatures.
45+
- The `.twasm` format changed. Regenerate archives created by earlier TinyWasm versions.
5046

5147
## [0.10.0] - 2026-07-24
5248

0 commit comments

Comments
 (0)