10 releases (breaking)

0.11.0 Nov 27, 2019
0.10.0 Jul 1, 2019
0.9.0 May 28, 2019
0.7.0 Feb 14, 2019
0.5.0 Nov 29, 2018

#2 in #ewasm

Download history 5/week @ 2024-02-19 8/week @ 2024-02-26 5/week @ 2024-03-11 61/week @ 2024-04-01

66 downloads per month


767 lines


Build Version

This project aims to give a low-level and a high-level binding to ewasm from Rust.


Add the dependency, as usual:

ewasm-api = "0.11"

Make sure the project is a library of cdylib type:

crate-type = ["cdylib"]

In your project, include the prelude:

use ewasm_api::prelude::*;

Additionally there is support for some macros to make creating contracts easier:

extern crate ewasm_api;

use ewasm_api::prelude::*;

fn entry() {
    // The actual contract code goes here.


Other modules are available as well, outside of the prelude. Refer to the documentation for more info.

ewasm-rust-api builds with various feature sets:

  • default: Builds with wee_alloc as the global allocator and with the Rust standard library.
  • qimalloc: Builds with qimalloc as the global allocator.
  • debug: Exposes the debugging interface.
  • experimental: Exposes the experimental bignum system library API.

To enable specific features include the dependency as follows:

version = "0.11"
default-features = false
features = ["std", "qimalloc"]

Further documentation is available here.


Alex Beregszaszi, Jake Lang


Apache 2.0