IndexedDB is a relatively new browser API that provides a client-side NoSQL database where you can store JSON objects. I’ve not had the opportunity to use it yet, however James Long has and unfortunately it is pretty rubbish! This article details a number of the limitations.
As an alternative James has taken a WebAssembly build of SQLLite and ‘re-wired’ it to persist data via IndexedDB, and the results ar really quite impressive. This blog post goes into a lot of technical detail, but if you just want to have a play with what has created, you can find absurd-sql on GitHub.
This blog post asks the question, “Websites tend to scan the open ports of their users, from the browser, to identify new/returning users better. Can ‘localhost’ be abused by the browser? Can it be done through WebAssembly?”. The author proceeds to demonstrate that yes, this is indeed possible via some Go code compiled to WebAssembly.
Yes, it is possible, but is this a meaningful conclusion? Those of you who are familiar with WebAssembly will know that it has a very strict sandbox, applications that run within the WebAssembly virtual machine have access to memory, the ability to perform computations and nothing else. In order to interact with the world outside of the virtual machine you need to explicitly provide function imports, or global variables. WebAssembly of itself is highly secure. That doesn’t mean to say you can’t create insecure application using WebAssembly, but you have to be intentional about it, and that is entirely your choice!
It would easy to misinterpret this article and be of the belief that WebAssembly has some inherent flaws that make port scanning possible. Whereas, the author just happens to have used WebAssembly as part of an insecure application that they have crafted. They could have equally (and arguably more easily) done so without WebAssembly.
Rant over, and no disrespect to the article’s author.
Netlify is a platform for developing and hosting Jamstack applications, a popular architecture for creating rich client-side apps. The Netlify platform provides support for serverless functions, small pieces of application logic deployed to the cloud. Recently, they have been making use of WasmEdge, a cloud-native WebAssembly runtime, as an alternative host for cloud functions, and as a result have seen better performance with less server-side resource utilisation. It looks like WebAssembly has a promising future at Netlify.
While the title of this blog post suggests that it is simply about calling WebAssembly from Rust, it actually provides a really good introduction to the various options available to you if you’re new to WebAssembly/Rust.
Ewasm is set to make Ethereum as “the world’s computer” with better performances and efficiency.
Ethereum aims to be “the world’s computer”, with everything running on WebAssembly. This technology really is taking over the world!