Skip to content
This repository was archived by the owner on Oct 3, 2025. It is now read-only.

Commit 3f5db9a

Browse files
docs: update readme
Signed-off-by: Henry Gressmann <[email protected]>
1 parent f6dba82 commit 3f5db9a

File tree

4 files changed

+41
-30
lines changed

4 files changed

+41
-30
lines changed

CONTRIBUTING.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@
1313
- **`cargo test-mvp`**\
1414
Run the WebAssembly MVP (1.0) test suite. Be sure to cloned this repo with `--recursive` or initialize the submodules with `git submodule update --init --recursive`
1515

16+
- **`cargo test-2`**\
17+
Run the full WebAssembly test suite (2.0)
18+
19+
- **`cargo benchmark <benchmark>`**\
20+
Run a single benchmark. e.g. `cargo benchmark argon2id`
21+
1622
- **`cargo test-wast <path>`**\
1723
Run a single WAST test file. e.g. `cargo test-wast ./examples/wast/i32.wast`
1824

Cargo.lock

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

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313
## Why TinyWasm?
1414

1515
- **Tiny**: TinyWasm is designed to be as small as possible without significantly compromising performance or functionality.
16-
- **Portable**: TinyWasm runs on any platform that LLVM supports, including WebAssembly itself, with minimal external dependencies.
16+
- **Portable**: TinyWasm runs on any platform that Rust can target, including WebAssembly itself, with minimal external dependencies.
1717
- **Lightweight**: TinyWasm is easy to integrate and has a low call overhead, making it suitable for scripting and embedding.
1818

1919
## Status
2020

21-
As of version `0.3.0`, TinyWasm successfully passes all the WebAssembly 1.0 tests in the [WebAssembly Test Suite](https://github.com/WebAssembly/testsuite). Work on the 2.0 tests is ongoing. This achievement ensures that TinyWasm can run most WebAssembly programs, including versions of TinyWasm itself compiled to WebAssembly (see [examples/wasm-rust.rs](./examples/wasm-rust.rs)). The results of the testsuite are available [here](https://github.com/explodingcamera/tinywasm/tree/main/crates/tinywasm/tests/generated).
21+
As of version `0.3.0`, TinyWasm successfully passes all the WebAssembly 1.0 tests in the [WebAssembly Test Suite](https://github.com/WebAssembly/testsuite). Work on the 2.0 tests is ongoing. This enables TinyWasm to run most WebAssembly programs, including versions of TinyWasm itself compiled to WebAssembly (see [examples/wasm-rust.rs](./examples/wasm-rust.rs)). The results of the testsuites are available [here](https://github.com/explodingcamera/tinywasm/tree/main/crates/tinywasm/tests/generated).
2222

23-
The API is still unstable and may change at any time, so don't use it in production _yet_. Note that TinyWasm isn't primarily designed for high performance; its focus lies more on simplicity, size, and portability. More details on its performance aspects can be found in [BENCHMARKS.md](./BENCHMARKS.md).
23+
The API is still unstable and may change at any time, so you probably don't want to use it in production _yet_. Note that TinyWasm isn't primarily designed for high performance; its focus lies more on simplicity, size, and portability. More details on its performance aspects can be found in [BENCHMARKS.md](./BENCHMARKS.md).
2424

2525
## Supported Proposals
2626

crates/tinywasm/src/lib.rs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,25 @@
1010
//! A tiny WebAssembly Runtime written in Rust
1111
//!
1212
//! TinyWasm provides a minimal WebAssembly runtime for executing WebAssembly modules.
13-
//! It currently supports a subset of the WebAssembly MVP specification and is intended
14-
//! to be useful for embedded systems and other environments where a full-featured
15-
//! runtime is not required.
13+
//! It currently supports all features of the WebAssembly MVP specification and is
14+
//! designed to be easy to use and integrate in other projects.
1615
//!
1716
//! ## Features
18-
//! - `std` (default): Enables the use of `std` and `std::io` for parsing from files and streams.
19-
//! - `logging` (default): Enables logging via the `log` crate.
20-
//! - `parser` (default): Enables the `tinywasm_parser` crate for parsing WebAssembly modules.
17+
//!- **`std`**\
18+
//! Enables the use of `std` and `std::io` for parsing from files and streams. This is enabled by default.
19+
//!- **`logging`**\
20+
//! Enables logging using the `log` crate. This is enabled by default.
21+
//!- **`parser`**\
22+
//! Enables the `tinywasm-parser` crate. This is enabled by default.
23+
//!- **`archive`**\
24+
//! Enables pre-parsing of archives. This is enabled by default.
25+
//!- **`unsafe`**\
26+
//! Uses `unsafe` code to improve performance, particularly in Memory access
2127
//!
22-
//! ## No-std support
23-
//! TinyWasm supports `no_std` environments by disabling the `std` feature and registering
24-
//! a custom allocator. This removes support for parsing from files and streams,
25-
//! but otherwise the API is the same.
26-
//! Additionally, to have proper error types, you currently need a `nightly` compiler to have the error trait in core.
28+
//! With all these features disabled, TinyWasm only depends on `core`, `alloc` and `libm`.
29+
//! By disabling `std`, you can use TinyWasm in `no_std` environments. This requires
30+
//! a custom allocator and removes support for parsing from files and streams, but otherwise the API is the same.
31+
//! Additionally, to have proper error types in `no_std`, you currently need a `nightly` compiler to use the unstable error trait in `core`.
2732
//!
2833
//! ## Getting Started
2934
//! The easiest way to get started is to use the [`Module::parse_bytes`] function to load a

0 commit comments

Comments
 (0)