All Projects → rianhunter → Wasmjit

rianhunter / Wasmjit

Licence: other
Small Embeddable WebAssembly Runtime

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Wasmjit

Wasm Micro Runtime
WebAssembly Micro Runtime (WAMR)
Stars: ✭ 2,440 (+129.54%)
Mutual labels:  jit, webassembly, wasm, embedded, interpreter
warpy
WebAssembly interpreter in RPython
Stars: ✭ 54 (-94.92%)
Mutual labels:  interpreter, webassembly, wasm, jit
TypeScriptXX
🧷 Stay safe! Type-safe scripting for C++ using TypeScriptToLua and CMake with auto-generated declarations.
Stars: ✭ 33 (-96.9%)
Mutual labels:  embedded, webassembly, wasm, emscripten
Wasm3
🚀 The fastest WebAssembly interpreter, and the most universal runtime
Stars: ✭ 4,375 (+311.57%)
Mutual labels:  webassembly, wasm, embedded, interpreter
koder
QR/bar code scanner for the Browser
Stars: ✭ 73 (-93.13%)
Mutual labels:  webassembly, wasm, emscripten
Rhai
Rhai - An embedded scripting language for Rust.
Stars: ✭ 958 (-9.88%)
Mutual labels:  webassembly, wasm, embedded
Rustpython
A Python Interpreter written in Rust
Stars: ✭ 10,261 (+865.29%)
Mutual labels:  jit, interpreter, wasm
Wasm Git
GIT for nodejs and the browser using https://libgit2.org compiled to WebAssembly with https://emscripten.org
Stars: ✭ 261 (-75.45%)
Mutual labels:  emscripten, webassembly, wasm
Winter
Haskell port of the WebAssembly OCaml reference interpreter
Stars: ✭ 42 (-96.05%)
Mutual labels:  webassembly, wasm, interpreter
Cppwasm Book
📚 WebAssembly friendly programming with C/C++ -- Emscripten practice
Stars: ✭ 956 (-10.07%)
Mutual labels:  emscripten, webassembly, wasm
Rustynes
👾 An NES emulator by Rust and WebAssembly
Stars: ✭ 399 (-62.46%)
Mutual labels:  emscripten, webassembly, wasm
Wac
WebAssembly interpreter in C
Stars: ✭ 372 (-65%)
Mutual labels:  emscripten, webassembly, wasm
Camaro
camaro is an utility to transform XML to JSON, using Node.js binding to native XML parser pugixml, one of the fastest XML parser around.
Stars: ✭ 438 (-58.8%)
Mutual labels:  emscripten, webassembly, wasm
Webassembly Examples
From Simple To Complex. A complete collection of webassembly examples.
Stars: ✭ 177 (-83.35%)
Mutual labels:  emscripten, webassembly, wasm
go-jdk
Run JVM-based code in Go efficiently
Stars: ✭ 61 (-94.26%)
Mutual labels:  embedded, interpreter, jit
Modern Wasm Starter
🛸 Run C++ code on web and create blazingly fast websites! A starter template to easily create WebAssembly packages using type-safe C++ bindings with automatic TypeScript declarations.
Stars: ✭ 140 (-86.83%)
Mutual labels:  emscripten, webassembly, wasm
Dcmjs
dcmjs is a javascript cross-compile of dcmtk (dcmtk.org).
Stars: ✭ 92 (-91.35%)
Mutual labels:  emscripten, webassembly, wasm
Emscripten Docker
Docker image with Emscripten to compile ASM.js and WebAssembly
Stars: ✭ 92 (-91.35%)
Mutual labels:  emscripten, webassembly, wasm
Assortedwidgets
OpenGL GUI library
Stars: ✭ 92 (-91.35%)
Mutual labels:  emscripten, webassembly, wasm
Webassemblyjs
Toolchain for WebAssembly
Stars: ✭ 566 (-46.75%)
Mutual labels:  webassembly, wasm, interpreter

Wasmjit

Wasmjit is a small embeddable WebAssembly runtime. Its core is written in C90 and is easily portable to most environments.

It includes an Emscripten-compatible host environment for running on POSIX systems. This is useful for running WebAssembly modules without having to run an entire browser or JavaScript runtime.

Wasmjit is licensed under a permissive MIT license.

Getting Started

Wasmjit currently runs on x86_64 POSIX systems, like Linux, macOS, and the BSDs. To get started with Wasmjit you need a few tools:

  • A standard POSIX C development environment that includes cc and make.
  • Emscripten SDK

Building the Executable

$ make clean
$ make -j wasmjit

Building and running the Example

$ source path_to_emsdk/emsdk_env.sh # bring emcc into $PATH
$ emcc -o selfpipe.wasm -s EMIT_EMSCRIPTEN_METADATA=1 src/wasmjit_examples/selfpipe.c

You can now run the example:

$ time ./wasmjit selfpipe.wasm

Status

Wasmjit can run a fairly large subset of Emscripten-generated WebAssembly and has been tested on Linux, OpenBSD, and macOS. It currently only supports x86_64. Here are the current developments goals in order of priority:

  • Implement an interpreter
  • Implement Go-runtime for Go-generated wasm files
  • Optimize x86_64 JIT
  • Implement arm64 JIT
  • Implement JIT debugging symbols

PRs are welcome :) see CONTRIBUTING.md first.

Contact

Rian Hunter @cejetvole

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].