Skip to content
@wasm-ecosystem

wasm-ecosystem

WASM ecosystem

This org maintains some interesting infra about the wasm ecosystem.

Project vision

This open-source Wasm ecosystem aims to provide a high-performance, secure runtime environment for scripting languages in the automotive industry or other embedded industries.

Compilation backend

The challenge for in-vehicle code is to simultaneously achieve flexibility, high performance, security, high portability, and compliance with automotive software quality standards. Previous open-source projects could not achieve all of these goals at the same time. Native software requires flashing through OTA updates and is not flexible enough; interpreters have insufficient performance; heavyweight runtimes have poor portability and may not be compatible with in-vehicle ECUs. Also, very few open-source runtimes take automotive software quality standards into account. WebAssembly's sandboxing inherently meets the security and isolation requirements of in-vehicle ECUs. BMW therefore developed its own Wasm AOT compiler. This compiler has almost no third-party dependencies. In addition to supporting common environments such as x86_64, arm64, Windows, Linux, and macOS, it also supports the TriCore instruction set and the QNX operating system, and can run in a Classic AUTOSAR environment. Execution requires only a little over ten to a few hundred kB of memory, and execution performance is on the same order of magnitude as mainstream Wasm compilers. It also complies with the AUTOSAR C++ Guidelines. Scripting languages can be deployed dynamically and flexibly in vehicles.

Programming language

A programming language and its compiler are also a product. The target users of this ecosystem are people who are not full-time programmers and need to deploy lightweight business logic in vehicles. Many languages can be compiled to Wasm, but previously none met the requirements. Traditional languages such as C/C++ and Rust have a steep learning curve and are not suitable for people who are not full-time programmers. Dart and Kotlin, meanwhile, cannot be compiled to Wasm that runs independently of JavaScript. AssemblyScript was initially chosen because its TypeScript-like user experience met the need for an easy learning experience for people who are not full-time programmers. However, with more extensive use, AssemblyScript's performance was found to fall short of the requirements, because its code optimization relies solely on optimization at the Wasm bytecode level. The Warpo compiler was therefore developed based on AssemblyScript. Warpo inherits AssemblyScript's user experience and adds more optimization passes based on AssemblyScript's language features. It also adds features such as closures and a debugger.

Pinned Loading

  1. assemblyscript-unittest-framework assemblyscript-unittest-framework Public

    everything you need for assemblyscript unit test

    TypeScript 8 6

  2. assemblyscript-prettier assemblyscript-prettier Public

    prettier plugin for assemblyscript

    JavaScript 16 4

  3. warpo warpo Public

    next generation assemblyscript compiler

    WebAssembly 18 5

  4. wasm-compiler wasm-compiler Public

    a lightweight and blazingly fast WebAssembly compiler and runtime library designed for use on resource-constrained embedded systems while seamlessly scaling to high-powered desktop and server systems

    C++ 28 9

Repositories

Showing 10 of 10 repositories

Top languages

Loading…

Most used topics

Loading…