memory64
reference-types
memory64 | reference-types | |
---|---|---|
7 | 9 | |
179 | 151 | |
2.2% | - | |
8.5 | 5.3 | |
1 day ago | over 2 years ago | |
WebAssembly | WebAssembly | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
memory64
-
Top 8 Recent V8 Updates
A completed implementation of memory64 for memory-hungry applications.
-
Extism Makes WebAssembly Easy
Indeed, webassembly is moving extremely slowly. I started a project years ago expecting https://github.com/WebAssembly/memory-control/blob/main/prop... and https://github.com/WebAssembly/memory64 to be fixed at some point. Neither are yet, and the project still suffers from it to this day.
I think wasm is still great without these fixes, but I have lost confidence in the idea that wasm will reach its full potential any time soon.
-
How Photoshop solved working with files larger than can fit into memory
It's in the works: https://github.com/WebAssembly/memory64
Starting with 32bit had some performance advantages because 64bit runtimes can use virtual memory shenanigans to implement bounds checking with zero overhead. In wasm64 they'll have to do explicit bounds checking instead.
-
Transformers.js
Right - currently, everything runs using WASM (32-bit, with 64-bit coming soon [1,2]), and I plan to add support for WebGPU soon!
(WebGPU is the successor to WebGL, which is coming out in April 2023 [3])
[1] https://github.com/WebAssembly/memory64/issues/36#issuecomme...
-
What was the rational for 32-bit memory addresses in WebAssembly? It seems very short-sighted, considering it only came out pretty recently in 2017
It shouldn't be a big surprise that a 64-bit pointer extension is out there and being worked on. The great thing about a VM is you can integrate major changes like this when they are needed and with the benefit of experience and hindsight. If the 4GB limit turns out to be restrictive then it can be lifted.
- Why Am I Excited About WebAssembly?
-
Increasing Smart Contract Canister Memory Proposal is live for review
The goal of this proposal is to increase the amount of memory that canisters can access [eventually] bound only by the actual capacity of the subnet. Since, the Memory64 proposal is not standardized 1 yet and its implementation 1 in Wasmtime is not production ready yet, this proposal enables the increase by introducing a new stable memory API.
reference-types
-
Old CSS, new CSS (2020)
> It could be an interesting use case for WASM if the problem of passing data into the WASM VM cheaply (perhaps by reference) can be solved.
WASM Reference Types should hopefully solve this. The WASM working group seems to have some good momentum - so I'm hopeful this (or a similar replacement spec) will land sooner rather than later.
https://github.com/WebAssembly/reference-types/blob/master/p...
-
Bring garbage collected programming languages efficiently to WebAssembly
AFAIK GC is irrelevant for "direct DOM access", you would rather want to hop into the following rabbit hole:
- reference types: https://github.com/WebAssembly/reference-types/blob/master/p...
- interface types (inactive): https://github.com/WebAssembly/interface-types/blob/main/pro...
- component model: https://github.com/WebAssembly/component-model
If this looks like a mess, that's because it is. Compared to that, the current solution to go through a Javascript shim doesn't look too bad IMHO.
-
Extism: Make all software programmable with WebAssembly
[1]: https://github.com/WebAssembly/proposals
A glance of the overview and spec seems to indicate that WASM will provide some primitive data types, and any GC language can build their implementation on top of it. As I understand it, it's heavily based on Reference Types[3], which allows acting on host-provided types, and is already considered part of the spec [4]. It doesn't remove the need for the 5 different runtimes to have their own GC, but it lowers the bulk that the runtimes need to carry around, and offloads some of that onto the WASM runtime instead.
[3]: https://github.com/WebAssembly/reference-types/blob/master/p...
-
Struggling to find yew benchmarks
They've talked about interface types, and added reference types, which is a stepping stone toward the GC extension proposal, which would be a stepping stone toward manipulating the DOM from the WebAssembly side, but their official roadmap page is more short-term.
-
Blazor WASM and privacy
Nope, WASM reference types, it has nothing to do with .NET type system.
-
FFmpeg for browser and node, powered by WebAssembly
> And there's been talk of exposing the JS GC to wasm for a few years. Hopefully when that stuff lands, it'll get easier to marshal objects across the gap.
You don't need a Wasm GC to do this. If you only need js objects to pass on to, say, the host's function or check is null or not, then reference types that are opaque external references: https://github.com/WebAssembly/reference-types/blob/master/p...
You can even do many more things if you export `Reflect` to WebAssembly: https://github.com/AssemblyScript/assemblyscript/blob/main/t...
Reference Types are available almost everywhere already (In Safari will be available after 15.0): https://webassembly.org/roadmap
- WebContainers: Run Node.js natively in the browser
-
Cranelift, Part 3: Correctness in Register Allocation
Re: GC -- yes, indeed, the whole business with safepoints arose from the need to support Wasm reference types as a backend for Wasmtime or Firefox. No safepoints are needed for Rust (or other C-like) code.
-
Wasmer 1.0 released, the fastest WebAssembly VM, cross-compilation, headless, native object engine, AOT compilers and more!
Reference Types,
What are some alternatives?
interface-types
assemblyscript - A TypeScript-like language for WebAssembly.
wasmtime - A fast and secure runtime for WebAssembly
botnet - Multiplayer programming game using Rust and WebAssembly
ffmpeg.wasm - FFmpeg for browser, powered by WebAssembly
temporal-polyfill - A lightweight polyfill for Temporal, successor to the JavaScript Date object
proposals - Tracking WebAssembly proposals
proposal-temporal - Provides standard objects and functions for working with dates and times.
schism - A self-hosting Scheme to WebAssembly compiler
component-sandbox-demo
webcontainer-core - Dev environments. In your web app.