651.288.7000 info@intertech.com

Intertech WebAssembly (Wasm) Services & System Integration Take Your Applications To Another Level!

Intertech’s WebAssembly developers help you run coded applications written in multiple languages, never intended to run outside a desktop, …run on the web, …through a web browser, …at near-native speeds!

You are no longer limited to one or the other, desktop or web. Take a look below to find out more about how and why WebAssembly may be necessary to you and your business, for individual applications or use in Microservices.

Achieve Greater Efficiency Through Intertech’s WebAssembly Streamlining Development Process!

WebAssembly Services WASM

Benefits Of WebAssembly:
Run Desktop Application Through A Web Browser
Run Applications That Require Major Processing Loads At Near Native Speeds
Supported By The Major Browsers, including Google Chrome, Mozilla, Microsoft, and others
Find Out If WebAssembly Is Right For You!

What & Why WebAssembly (Wasm)!

WebAssembly In Simple TermsWebAssembly.org

What Is WebAssembly

WebAssembly is a new type of code that can be run in modern web browsers – From The source – “WebAssembly (abbreviated WASM) is a binary instruction format for a stack-based virtual machine. WASM is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.” per webassembly.org. It is efficient and fast, open source and debuggable, safe, and part of the open web platform.

The Big Take Away

The big take away from that is the “compilation target for programming languages”. I highlight this because you may be under the impression that you write WASM code, but in reality you compile your code into WASM code. As it states “WASM is a binary instruction file which can run in a stack-based virtual machine”. In other words, a binary file that runs in an abstraction of a computer that acts like real hardware. The goal of WASM is for that abstraction to exist in the browser seamlessly.

Wasm Features

  • Efficient and Fast:  The WebAssembly takes advantage of common hardware capabilities on a range of platforms and allows applciations to run at native speed.
  • Safe:  A WebAssembly encoded application is placed in a memory-safe sandboxed execution environment and enforces the same-origin and permissions security  policies of the browser
  • Becomes Part Of Open Web:  Maintains the versionless, feature-tested, backwards-compatible nature of the web
Who’s Behind WebAssembly: Part of the World Wide Web Consortium (W3C), the “Web Assembly Working Group” is responsible for WebAssembly. They have contributors from many of the major players in modern web browsers, including Mozilla, Microsoft, Google and many more. In 2019 W3C WebAssembly became the fourth language for the web, allowing code to run in the browse, a massive stamp of approval by the people building browsers for WebAssembly. WebAssembly is turning out to be a groundbreaking addition to the web development world and is worth understanding.

Who’s Using WebAssembly

    • Autocad, one of the oldest computer drafting software’s was able to make a web version of their application using WebAssembly.
    • Unity, a gaming engine with a web player made using WebAssembly providing a performant 2D and 3D gaming that would otherwise not be possible.
    • TensorFlow, a JavaScript library used for machine learning modeling. WebAssembly was integrated for better, more performant modeling.
    • GoogleEarth, C/C++ codebases for native applications were ported to the web for performant 3D graphics in the browser.
    • Blazor, one of Microsoft’s newest programming frameworks allows you to write C# code that compiles into WebAssembly that executes client side.

At madewithwebassembly.com you can see a list of projects made using WebAssembly.

How Does WebAssembly Work?

To begin with a developer writes code in a WASM supported language (C++, Rust, C# etc..) and then compiles that code into a WASM binary format that is then able to run in the browser. For example, you can compile a C++ library into WASM format and then run functions from the library in a JavaScript web environment. Each supported language compiles to WASM through a unique library or toolchain. For C++, a compiler toolchain called “Emscripten” is used. For Rust, there is a tool called “wasm-pack”. For C# , you build the application with Blazor and Visual Studio (newer versions) handles the rest.

Why Would You Use WebAssembly?

There are a few regular use cases for going to WebAssembly as a solution.

  • Bottlenecks in your application: Areas in your application that a 50% increase in execution time or more consistent execution time would drastically improve the end users experience. Maybe your application has some backend business logic and you want to eliminate the server usage and the time it takes to communicate with it by executing that logic directly on the client.

  • Filing a technology gap: Google created an application called “Sqoosh,” used for image compression and processing. The application takes advantage of API’s and processing that traditional JavaScript couldn’t achieve so they turned to WASM.

  • Making use of non-web friendly code: “Sqoosh” is also a good example of making use of non-web friendly code, it uses multiple libraries written in a variety of languages compiled into WASM to deliver a wide range of image processing functionality. The idea is, code exists already that does something you want to do on the web, maybe WASM can be the solution that brings that code to the web.
Why Integration of your applications with the web can be important to your company.

Why Is System Integration With The Web Important?

Basically, WebAssembly allows your desktop applications to work anywhere. No download or installation. The web becomes your universal platform that can allow you to reach any device while you maintain a single code base. This allows for easy updates and worldwide access. With a web accessible application you can now use CAD programs through your browser, augmented reality programs with low latency, developer tools like editors, debuggers, and compilers, and enterprise applications like databases, and more!

How Does WebAssembly Work With javaScript?

WebAssembly was created to work alongside JavaScript, running WebAssembly modules that share functionality with your JavaScript requirements. By combining the two you now have a platform that takes advantage of WebAssembly’s power and performance attributes and JavaScript’s flexibility and nuances that make the experience enjoyable. What’s more, WebAssembly is being developed as a web standard via W3C – w3.org with active participation from all major browsers.

Why Does WebAssembly Need JavaScript?

Because WebAssembly does not have direct access to any application programming interfaces (APIs) you need javaScript and HTML to make the connection so your data moves back and forth. The browser, using JavaScript and HTML, loads, fetches, and sends the executes what your WebAssembly module has determined needs as its focus. Basically, WebAssembly fills a space that JavaScript does not do well and is getting to the point of being overloaded. WebAssembly opens the doors to a great partnership between the two.

WebAssembly is turning out to be a groundbreaking addition to the web development world. It’s got the support of the right communities and is currently stable and fully supported, so the future is bright. It’s not going to be the tool you use for everything, but when used correctly, it can be a powerful enhancement to your web application.

Discover Intertech Microservices!

Discover Intertech Business Process Automation!

WebAssembly Links For Further Research & Demo By Intertech Consultant, Mark Root.

Avoid The Obstacles Through Agile Software Development Done The Right Way!