Giter VIP home page Giter VIP logo

lang4iot's Introduction

Introduction

Main Goal

This project ia an attempt to aggregate end to end toolchains for various programming languages to enable them on microcontrollers with special focus on ESP32 chips.

The idea is to provide examples, dockerfiles and instructions, so it shoudl be possible to follow simple process:

(1) Build an example for selected language to wasm file.

(2) Run compiled example on host machine

(3) Run compiled example on ESP32 simulator (QEMU) on host machine using using selected runtime

(4) Build and run example on ESP32 target using selected runtime

Additional Goals

(1) Provide a template of using ESP IDF test framework with Linux and QEMU.

(2) Study and define common API for IoT

(3) Performance comparison between various language implementations, WASM and non-WASM runtimes

(4) Swagger-like API definition

Future Goals

(1) Evolve into an underlying platform that can be used by maintainers of other platforms

Languages

Implementations
C++ Emscripten
Cheerp
Smooth
Native
C# Blazor
NanoFramework
Go TinyGo
Haskell Haskell
Java Java
Kotlin Kotlin
Python Python
Rust Rust
TypeScript TypeScript
Haxe Haxe
PHP PHP
Ruby Ruby
Swift Swift

Runtimes

x86 ESP32
EOSVM
Fizzy
Wasm3
wac
wasmrt
wasmvm
WAVM
WAMR

API Bindings

Check details here

Runtimes

EOSVM

https://github.com/EOSIO/eos-vm

Fizzy

https://github.com/wasmx/fizzy

Wasm3

https://github.com/wasm3/wasm3

Tests running in QEMU
https://github.com/wasm3/wasm3/blob/9dcfce271c2fac86823725fc9ec0f75309d820e4/.github/workflows/tests.yml#L491-L516

wac

https://github.com/kanaka/wac

wasmrt

https://github.com/rhitchcock/wasmrt

wasmvm

https://github.com/WasmVM/WasmVM

WAVM

https://github.com/WAVM/WAVM

WAMR

https://github.com/bytecodealliance/wasm-micro-runtime

API Bindings

WASI

TBD

Custom ESP32

TBD

Tools

wabt

Suite of tools for WebAssembly:

https://github.com/WebAssembly/wabt

Simulation

Renode

https://renode.io

Wokwi

https://wokwi.com

TinkerCAD

https://www.tinkercad.com

Unsorted References

https://github.com/dotnet/runtimelab/blob/feature/NativeAOT-LLVM/docs/workflow/building/coreclr/nativeaot.md

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.