8000 GitHub - ekusiadadus/fizzy at bench-01
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
forked from wasmx/fizzy

Fizzy aims to be a fast, deterministic, and pedantic WebAssembly interpreter written in C++.

License

Notifications You must be signed in to change notification settings

ekusiadadus/fizzy

 
 

Repository files navigation

Fizzy

webassembly badge readme style standard badge circleci badge codecov badge license badge

Fizzy aims to be a fast integer-only WebAssembly interpreter written in C++.

Goals

I) Code quality

  • Clean and modern C++17 codebase without external dependencies
  • Easily embeddable (and take part of the standardisation of the "C/C++ embedding API")

II) Simplicity

  • Interpreter only
  • Provide no support for floating point operations (initially)
  • Support only WebAssembly binary encoding as an input (no support for the text format (.wat/.wast))

III) Conformance

  • Should pass the official WebAssembly test suite

IV) First class support for determistic applications (blockchain)

  • Support an efficient big integer API (256-bit and perhaps 384-bit)
  • Support optional runtime metering in the interpreter
  • Support enforcing a call depth bound
  • Further restrictions of complexity (e.g. number of locals, number of function parameters, number of labels, etc.)

Building and using

Fizzy uses CMake as a build system:

$ mkdir build && cd build
$ cmake ..
$ cmake --build .

This will build Fizzy as a library and since there is no public API (the so called embedder API in WebAssembly) yet, this is not very useful.

Building with the FIZZY_TESTING option will output a few useful utilities:

$ mkdir build && cd build
$ cmake -DFIZZY_TESTING=ON ..
$ cmake --build .

These utilities are as follows:

fizzy-bench

This can be used to run benchmarks available in the test/benchmarks directory. Read this guide for a short introduction.

fizzy-spectests

Fizzy is capable of executing the official WebAssembly tests. Follow this guide for using the tool.

fizzy-unittests

This is the unit tests suite of Fizzy.

Maintainers

License

license badge

Licensed under the Apache License, Version 2.0.

About

Fizzy aims to be a fast, deterministic, and pedantic WebAssembly interpreter written in C++.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 86.8%
  • CMake 4.3%
  • Rust 4.3%
  • C 3.6%
  • WebAssembly 0.5%
  • Python 0.4%
  • Shell 0.1%
0