10 popular language projects using WebAssembly

Today’s web apps aren’t as fast and responsive as native desktop apps, but what if it was possible? It is a promise. WebAssembly..

WebAssembly is a compact, low-level binary assembly-style language that runs in a web browser with near-native performance. At the same time, WebAssembly provides portable build targets for C / C ++, C #, Rust, Go, Kotlin, Swift, and other programming languages.

[ Also on InfoWorld: Microsoft gets serious about WebAssembly ]

Hailed as a means of improving the performance of web applications and enabling the use of languages ​​other than JavaScript to develop browser applications, WebAssembly is endorsed by Google, Mozilla, Apple, and Microsoft, all in the browser engine. Supports technology from.

WebAssembly has led to the development of a variety of new technologies, including a whole new programming language that harnesses its power. Below are 10 language projects that made big bets on WebAssembly.

Vinarien

Binaryen is a compiler toolchain infrastructure library for WebAssembly. Written in C ++, Binaryen aims to make compilation to WebAssembly easy, efficient and fast. It has a C API in a single header and can be used from JavaScript. Input is accepted in a WebAssembly-like format, but common control graphics are also accepted by compilers that prefer them.

Binaryen’s internal IR (intermediate representation) uses a compact data structure and uses all processor cores for parallel code generation and optimization. And because IR is a subset of WebAssembly, it’s easy to compile into WebAssembly. Optimizations specific to WebAssembly improve both code size and speed, and Binaryen itself serves as the backend to the compiler.

You can download Binaryen from. GitHub..

Blazor WebAssembly

Blazor WebAssembly uses .NET to build client-side, single-page interactive web applications and host those applications in modern browsers (including mobile browsers) on the WebAssembly-based .NET runtime environment. Frame. There is no need to recompile the code in plugins or other languages. The runtime allows .NET code to access browser functionality through the WebAssembly JavaScript API.

When the Blazor WebAssembly application runs in your browser, C # code and Razor files are compiled into a .NET assembly and downloaded to your browser with the .NET runtime. Additionally, .NET code is executed in WebAssembly in the browser’s JavaScript sandbox, thus protecting it from malicious actions on the client machine. Blazor WebAssembly apps can be deployed stand-alone or with server-side support.

Instructions for getting started with Blazor are available at: dotnet.microsoft.com..

Applause

Learning technology Applause Positioned as an enterprise-grade C / C ++ compiler for the web, it compiles C and C ++ (up to C ++ 17) into WebAssembly, JavaScript, or a combination of both. Cheerp is integrated with LLVM / Clang infrastructureUse custom optimizations to improve performance and minimize the size of the compiled output. Primarily used to port existing C / C ++ libraries and applications to HTML5, Cheerp can also be used to build web applications and WebAssembly components. Cheerp is provided under an open source and commercial license.

Cheerp can be downloaded from: Leaningtech.com..

CheerpJ

Called the “Java Compiler for the Web,” this LLVM-based compiler transforms Java client applications into WebAssembly, JavaScript, and HTML, allowing Java client applications to run in modern browsers. CheerpJ relies on three components: the AOT (ahead-of-time) compiler, the WebAssembly and JavaScript runtime environments, and the JavaScript DOM interoperability API to access the DOM from Java. CheerpJ allows you to compile JAR archives using the AOT compiler. CheerpJ does not require server side support.

Like Cheerp, CheerpJ comes from Leaning Technologies. You can download it from. Leaningtech.com..

[ Also on InfoWorld: What is LLVM? The power behind Swift, Rust, Clang, and more ]

Emscripten

This open source compiler toolchain compiles C and C ++, or any language that uses LLVM compiler technology, into WebAssembly for deployment to the web, Node.js, or the Wasm runtime environment, such as : Wasmer(The Emscripten emcc compiler also generates JavaScript that provides API support for compiled code. Emscripten is a list of real world code bases, including commercial code bases such as the Unreal Engine 4 game engine and Unity 3D platform Used to convert to WebAssembly Emscripten supports Standard C and C ++ libraries, C ++ exceptions, and OpenGL / WebGL graphics commands. Emscripten SDK Used to install the Emscripten toolchain (emcc, LLVM, etc.) and available on Linux, MacOS and Windows.

You can download Emscripten from: emscripten.org..

forest

Forest is a functional programming language that compiles into WebAssembly. Forest’s goal is to provide a language that makes it easy to build complex, interactive, and functional web applications, but without the traditional overhead of this approach.

Currently described as “pre-alpha, experimental and conceptual research software,” Forest offers static typing, pattern matching, immutable data structures, multiple syntaxes, and automatic code formats. The first syntax in development was inspired by Elm and Haskell.

Forest language design principles include ease of collaboration, testing as simple as possible, and agreements on structure and semantics, but disagreements over syntax. Johnstone strives to create forests fast enough to build complex games so that classic web applications are “super fast”.

You can download the forest from. GitHub..

grain

The grain language brings the functionality of academic and functional languages ​​into the 21st century, the project website says. Compile on WebAssembly via Vinarien Grain, the toolchain and compiler infrastructure, can run in browsers, servers, and potentially anywhere. There are no run type errors and no type annotation is required. The Grain toolchain includes a CLI, a compiler, a runtime environment, and a standard library and is delivered as a single binary. Developers need Node.js and Yarn to build Grain from source, and binaries for Linux, MacOS, and Windows are available.

Instructions for getting started with Grain are available at: Grain-lang.org..

JWebAssembly

JWebAssembly from I-Net Software is a Java bytecode to a WebAssembly compiler that takes Java class files as input and produces WebAssembly binary (.wasm files) or text (.wat files) files as output. The goal is to run natively in the browser using WebAssembly. In theory, JWebAssembly can compile languages ​​that can be compiled into Java bytecodes such as Clojure, Groovy, JRuby, Kotlin, and Scala awaiting testing.

JWebAssembly is not yet ready for production. Everything needed for version 1.0 of JWebAssembly has been implemented, but there is still testing. The version 1.0 roadmap requires features like Java bytecode analyzers, test frameworks, and Gradle plugins. I-Net Software plans to ship JWebAssembly 1.0 later this year.

You can download JWebAssembly from. GitHub..

Piyodide

Recently moved from the Pyodide project Mozilla becomes an independent projectCompiles Python and the Python science stack into WebAssembly, bringing the Python 3.8 runtime, NumPy, SciPy, Matplotlib, Scikit-learn, and many other packages to your browser. Pyodid provides transparent conversion of objects between JavaScript and Python, allowing Python to access the Web API. Pyodide started in 2018 as part of the Iodide Project for Running Data Science in the Browser. Piyodide can be tried from REPL In the browser.

Instructions for downloading and using Pyodide are available at: pyodide.org..

TeaVM

TeaVM, a pre-compiler for Java bytecode, generates WebAssembly and JavaScript to run in a browser. However, keep in mind that support for WebAssembly is currently experimental. Like my cousin GWT (Google Web Toolkit), TeaVM allows developers to write applications in Java and deploy them in JavaScript. Unlike GWT, TeaVM works with compiled class files rather than source code. Additionally, TeaVM relies on existing compilers like javac, kotlinc, and scalac, so you can compile Kotlin and Scala code as well as Java. TeaVM is first and foremost a web development tool. It is not designed to get a large code base in Java or Kotlin to generate JavaScript. The TeaVM Flavor subproject acts as a framework for building single page web applications.

For instructions on how to download and use TeaVM GitHub..

Copyright © 2021 IDG Communications, Inc.


Source link

About Jon Moses

Check Also

Why I can’t wait for improved vertical display support on Chromebooks

Earlier this week, Android Police noticed some upcoming changes in Chrome OS that will allow …

Leave a Reply

Your email address will not be published. Required fields are marked *