All Projects → migueldeicaza → Wasmersharp

migueldeicaza / Wasmersharp

Licence: mit
.NET Bindings for the Wasmer Runtime

Labels

Projects that are alternatives of or similar to Wasmersharp

Webassembly Examples
From Simple To Complex. A complete collection of webassembly examples.
Stars: ✭ 177 (-12.81%)
Mutual labels:  wasm
Uno.playground
Source code for the Uno Gallery apps and Uno Playground (made in Wasm)
Stars: ✭ 184 (-9.36%)
Mutual labels:  wasm
Ruukh
An experimental next-gen frontend framework for the Web in Rust.
Stars: ✭ 194 (-4.43%)
Mutual labels:  wasm
Lam
🚀 a lightweight, universal actor-model vm for writing scalable and reliable applications that run natively and on WebAssembly
Stars: ✭ 176 (-13.3%)
Mutual labels:  wasm
Prototype
(deprecated) The journey continues at ASNEXT: https://github.com/AssemblyScript/assemblyscript
Stars: ✭ 2,114 (+941.38%)
Mutual labels:  wasm
Wasm game of life
A Rust and WebAssembly tutorial implementing the Game of Life
Stars: ✭ 184 (-9.36%)
Mutual labels:  wasm
Alchemyvm
WebAssembly Virtual Machine Built In Elixir
Stars: ✭ 176 (-13.3%)
Mutual labels:  wasm
Olaf
Olaf: Overly Lightweight Acoustic Fingerprinting is a portable acoustic fingerprinting system.
Stars: ✭ 198 (-2.46%)
Mutual labels:  wasm
Wasm Pack Plugin
webpack plugin for Rust
Stars: ✭ 184 (-9.36%)
Mutual labels:  wasm
Wasmpatch
🧱Yet Another Patch Module for iOS/macOS via WebAssembly
Stars: ✭ 192 (-5.42%)
Mutual labels:  wasm
Webgui
An example demo of IMGUI (Immediate Mode GUI) on the web. Using only WebGL, GLFW and ImGui. Suitable for being compiled to web assembly (WASM).
Stars: ✭ 180 (-11.33%)
Mutual labels:  wasm
Raw Wasm
Raw WebAssembly demos
Stars: ✭ 183 (-9.85%)
Mutual labels:  wasm
Yarte
Yarte stands for Yet Another Rust Template Engine
Stars: ✭ 189 (-6.9%)
Mutual labels:  wasm
Wag
WebAssembly compiler implemented in Go
Stars: ✭ 177 (-12.81%)
Mutual labels:  wasm
Rustmart Yew Example
Single Page Application (SPA) written using Rust, Wasm and Yew
Stars: ✭ 196 (-3.45%)
Mutual labels:  wasm
Tdl
Node.js bindings to TDLib.
Stars: ✭ 177 (-12.81%)
Mutual labels:  wasm
Go Wasm
The in-browser IDE for Go
Stars: ✭ 186 (-8.37%)
Mutual labels:  wasm
Blazorrepl
Write, compile, execute and share Blazor components entirely in the browser
Stars: ✭ 196 (-3.45%)
Mutual labels:  wasm
Argon2 Browser
Argon2 library compiled for browser runtime
Stars: ✭ 197 (-2.96%)
Mutual labels:  wasm
Wasm Examples
WebAssembly Examples
Stars: ✭ 191 (-5.91%)
Mutual labels:  wasm

WasmerSharp

.NET Bindings for the Wasmer Runtime. This allows you to run WASM code in the same process as your .NET Code.

If you are looking at a way of converting WebAssembly code into .NET IL, suitable to turn C and C++ code into cross-platform mobile IL, use Eric Sink's Wasm2Cil documented here

This binds Wasmer at version ab5f28851a676f9d3672f41d1608e34ddab470ff

Install and use

The best way of using WasmerSharp is to add a reference to the WasmerSharp Nuget package and then follow along "Introduction to WasmerSharp"

The StandaloneSample directory contains a .NET core example that you can use as a reference.

Documentation

See the Introduction to WasmerSharp for a quick crash course on WasmerSharp.

Wasmer API Documentation

Developing WasmerSharp

If you want to contribute to WasmerSharp, you will likely develop against this tree, and not against the published NuGet package in the StandaloneSample which is intended to be a public sample that works with the public release.

WasmerSharp itself is a .NET Standard 2 library, so it works with .NET Desktop, .NET Core and Mono. You can use the projects in the Tests directory to test against the WasmerSharp library built here, as opposed to referencing the official NuGet package.

The bindings will need the Wasmer C runtime to be installed somewhere accessible in your system (either in a location accessible to the dynamic linker in your OS, or you must copy manually those libraries into the development directory).

To obtain the native Wasmer C runtime, you can either download the support library for your platform from Wasmer Releases page or using the toplevel makefile target "fetch-runtimes". Those are named:

  • libwasmer_runtime_c_api.dylib for MacOS
  • libwasmer_runtime_c_api.so for Linux
  • wasmer_runtime_c_api.dll for Windows

The runtime that you get needs to be copied in the appropriate locaion in bin/Debug or bin/Release in those places.

If you want to work on the Wasmer runtime and produce the support libraries for WasmerSharp, you would build Wasmer like this:

cargo build -p wasmer-runtime-c-api

And then copy the target/debug/libwasmer_runtime_c_api.dylib library to the destination.

LICENSE

This is licensed under the MIT License terms.

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].