-
🎅 Ho Ho Ho, WasmEdge 0.9.0 is here!
WasmEdge 0.9.0 is released just in time for the holidays. It is time for you to check out the bells and whistles, and unlock a new skill for 2022! This release of WasmEdge is focused on performance, stability, and interoperability with cloud native infrastructure. Specifically, WasmEdge now supports SIMD and several other WebAssembly feature proposals by default more JavaScript standards, such as ES6, CJS, and NPM modules improved performance, especially for JavaScript apps an improved and standard compliant C API an improved Go API and Reactr integration Dapr integration a new Universal Wasm Binary file format for AOT compiled high performance apps container and Kubernetes ecosystem SIMD and other WebAssembly proposals WasmEdge has supported the WebAssembly SIMD (Single instruction, multiple data) proposal since version 0.…
-
eBPF and WebAssembly: whose VM reigns supreme?
The two hottest lightweight code execution sandboxes / VMs in the cloud-native world today are eBPF and WebAssembly. They both run high-performance bytecode programs compiled from C, C++, and Rust. The biggest difference, however, is that eBPF runs inside the Linux kernel while WebAssembly runs in the user space. eBPF has some programming restrictions that makes it safe for kernel use cases (eg no infinite loops). But that also means that eBPF is Turing incomplete.…
-
Containerization on the edge
This work is supported by Second State and FutureWei based on Open Source projects WasmEdge and seL4. Application containers, such as Docker, are a key driving force behind the growth of Cloud Native applications. However, while the Cloud-Native development paradigm has proven very popular, it is difficult to expand the Cloud-Native infrastructure beyond large data centers since application containers require significant amounts of computing resources. For example, Docker does not support real-time operating systems (RTOS) and only works on POSIX systems.…
ProductWasmEdgeRTOSWebAssemblyRTOSseL4cloud computingEdge computing
-
Multiple Remotely Based Job Openings
Second State‘s open source WebAssembly runtime WasmEdge has been hosted as a sandbox project by CNCF under the Linux Foundation, the only Wasm runtime at CNCF. Its use cases include serverless apps, embedded functions, microservices, smart contracts, and IoT devices. Two decades ago, we witnessed the migration of Java from the browser to the server side. A decade ago, we saw the migration of JavaScript from the browser to the server.…
-
WasmEdge for Go Developers
Go developers can benefit from WebAssembly and WasmEdge Runtime in two important ways. You can compile Go programs to run in the WasmEdge container, or embed external functions, written in multiple programming languages, into Go applications as plug-ins. Get started by installing WasmEdge or using the WasmEdge development Docker. Embed WasmEdge in Go applications WasmEdge enables Go developers to embed functions and plug-ins written in different languages, including Rust, Swift, Kotlin, C/C++, JavaScript and TinyGo, into their Go applications.…
-
WasmEdge for JavaScript Developers
JavaScript developers can benefit from WebAssembly and WasmEdge Runtime in two important ways. You can run JavaScript programs in the WasmEdge container, or call external functions, written in multiple programming languages, from Node.js applications. Get started by installing WasmEdge or using the WasmEdge development Docker. Run JavaScript programs in WasmEdge WebAssembly is a ploygot runtime that supports many front-end programming languages. You can run JavaScript programs efficiently and safely across all OS and hardware platforms WasmEdge supports.…
-
A lightweight, safe, portable, and high-performance runtime for Dapr
originally published on infoQ.com Key takeaways: Dapr is a versatile framework for building microservices. WebAssembly VMs, such as WasmEdge, provide high-performance and secure runtimes for microservice applications. WebAssembly-based microservices can be written in a number of programming languages, including Rust, C/C++, Swift, and JavaScript. WebAssembly programs are embedded into Dapr sidecar applications, and hence can be portable and agnostic to the Dapr host environment. The WasmEdge SDK provides an easy way to build microservices for Tensorflow inference.…
-
Manage WebAssembly Apps Using Container and Kubernetes Tools
Developers can leverage container tools such as Kubernetes, Docker and CRI-O to deploy, manage, and run lightweight WebAssembly applications. In this article, we will demonstrate how Kubernetes ecosystem tools work with WasmEdge WebAssembly applications. Compared with Docker, WebAssembly could be 100x faster at startup, have a much smaller memory and disk footprint, and have a better-defined safety sandbox. However, the trade-off is that WebAssembly requires its own language SDKs, and compiler toolchains, making it a more constrained developer environment than Docker.…
RustWebAssemblyDockerhow-toOCICRI-ODockerKubernetescruncontainer
-
Calling native functions from JavaScript
WasmEdge enables JavaScript to call native functions in shared libraries. In my previous articles, I explained why and how to run JavaScript programs in a WebAssembly sandbox. I also discussed how to create custom JavaScript APIs for WasmEdge using Rust. However, in order to fully access the underlying system's OS and hardware features, we sometimes need to create JavaScript APIs for C-based native functions. That is, when a JavaScript program calls the pre-defined function, WasmEdge will pass it to a native shared library on the OS for execution.…
-
Creating high-performance JavaScript APIs using Rust
WasmEdge brings together Rust’s performance and JavaScript’s ease of use In my previous article, I discussed how to embed JavaScript code into a Rust program. However, for JavaScript developers, the need is often the opposite – to incorporate Rust functions into JavaScript APIs. That enables developers to write programs in “pure JavaScript” and yet still take advantage of the high performance Rust functions. With the WasmEdge Runtime, you can do exactly that.…