Discussion
Loading...

#Tag

  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
jbz
@jbz@indieweb.social  ·  activity timestamp 16 hours ago

⚡ #Wasm 3.0 Completed
https://webassembly.org/news/2025-09-17-wasm-3.0/

Wasm 3.0 Completed - WebAssembly

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.
  • Copy link
  • Flag this post
  • Block
Karsten Schmidt
@toxi@mastodon.thi.ng  ·  activity timestamp 7 days ago

After almost a week of refactoring and experimenting with several different approaches, I've updated my Zig nD SIMD vector library to be compatible with the latest Zig 0.15.1, and at the same time cleaned up some internals.

The solution I settled on is a mix of techniques proposed by others, and was needed due to the removal of the struct/namespace-merging syntax in the new Zig version, which this library heavily relies on. I don't like that the new source code is now more than 2x larger and involves a huge amount of duplication to address the many special cases of supported operations for different vector sizes and types. I might still take another pass to eliminate those (by using @compileError() for unsupported cases), but that'd be an implementation detail downstream users don't have to care about. I tried AOT code generation as well, but the special case handling made this feel less maintainable...

UPDATE: The only breaking change is the handling of vector swizzles. I had to remove the hundreds of named swizzle functions and replaced them with a single (comptime optimized) .swizzle(vec, pattern), e.g. .swizzle(vec, "xxyy")...

If you're interested, the new code is here:
https://github.com/thi-ng/zig-thing/blob/main/src/vectors.zig

The readme contains details about the many supported operations:
https://github.com/thi-ng/zig-thing/blob/main/doc/vectors.md

Installation instructions in the main repo readme:
https://github.com/thi-ng/zig-thing/tree/main

#Zig#Ziglang#ZigThing#Vectors#Refactoring

Karsten Schmidt
@toxi@mastodon.thi.ng replied  ·  activity timestamp 7 days ago

Btw. It's amazing that this swizzle function gets compiled into single WASM i8x16.shuffle ops (per 4 vector components, i.e. swizzling into an 8-dimensional vector would require 2 shuffles):

https://github.com/thi-ng/zig-thing/blob/ab8566baf6f413abc29ca9ced222189bdb1f455e/src/vectors.zig#L1287-L1301

#Ziglang#WebAssembly#WASM

  • Copy link
  • Flag this comment
  • Block
just small circles 🕊
silverpill
just small circles 🕊 and 1 other boosted
violently gay :sterntastatur: :hex_non_binary:
@aumetra@corteximplant.net  ·  activity timestamp 2 weeks ago

preliminary blog post about a generic wasm-based mrf for activitypub implementations. might be a bit until i have the full fep done, bear with me

https://aumetra.xyz/posts/activitypub-mrf/

#fediverse#activitypub#mrf#wasm

  • Copy link
  • Flag this post
  • Block
violently gay :sterntastatur: :hex_non_binary:
@aumetra@corteximplant.net  ·  activity timestamp 2 weeks ago

preliminary blog post about a generic wasm-based mrf for activitypub implementations. might be a bit until i have the full fep done, bear with me

https://aumetra.xyz/posts/activitypub-mrf/

#fediverse#activitypub#mrf#wasm

  • Copy link
  • Flag this post
  • Block
just small circles 🕊
just small circles 🕊 boosted
Karsten Schmidt
@toxi@mastodon.thi.ng  ·  activity timestamp 3 weeks ago

Yesterday I released new versions of https://thi.ng/wasm-api (and its add-on packages), a modular and extensible bridge API & toolchain for hybrid JS/TS/Zig/WebAssembly apps, now updated to be compatible with the latest Zig version 0.15.1...

The update addresses some of Zig's breaking syntax & build system changes only, nothing on the JS/TS side has changed. As a result https://thi.ng/wasm-api-dom has a slightly revised internal structure (also a breaking change, but nothing major & unavoidable). All bundled Zig examples[1] in the repo have been updated too, take a look for reference (if needed).

FYI More details about the Zig language changes here:
https://ziglang.org/download/0.15.1/release-notes.html#Language-Changes

Specifically, the removal of usingnamespace has had a major impact on the existing handling of generated types in these wasm-api support packages (or your own) and now forces an additional level of hierarchy in terms of namespacing. This is because usingnamespace enabled a form of namespace merging, which allowed the generated WASM⭤TS interop types (written to their own sourcefile) to be merged/hoisted into the main library module.

For example, previously after importing const dom = @import("wasm-api-dom"); we could refer to a type via dom.WindowInfo. Now with namespace merging removed, we have to use dom.types.WindowInfo. As I said, it's not a major departure, but a breaking change nonetheless[2]...

The build.zig file bundled with https://thi.ng/wasm-api is now also only compatible with Zig 0.15.1 (for now). Build files for older Zig versions are still included too (in the same directory)[3].

Lastly, once more for the record: The wasm-api bridge itself is NOT tied to Zig (or a particular version), however it's the main use case/language for my own WebAssembly use cases...

[1] https://github.com/thi-ng/umbrella/tree/develop/examples (all examples starting with zig-*)

[2] The existing design of these modules helped to keep these breaking changes to a minimum in userland code and these updates are all following the same uniform pattern (i.e. exposing interop types via modulename.types.TypeName...)

[3] https://github.com/thi-ng/umbrella/tree/develop/packages/wasm-api#using-the-zig-build-system

#ThingUmbrella#Zig#Ziglang#WebAssembly#WASM#TypeScript#JavaScript#Interop

  • Copy link
  • Flag this post
  • Block
Karsten Schmidt
@toxi@mastodon.thi.ng  ·  activity timestamp 3 weeks ago

Yesterday I released new versions of https://thi.ng/wasm-api (and its add-on packages), a modular and extensible bridge API & toolchain for hybrid JS/TS/Zig/WebAssembly apps, now updated to be compatible with the latest Zig version 0.15.1...

The update addresses some of Zig's breaking syntax & build system changes only, nothing on the JS/TS side has changed. As a result https://thi.ng/wasm-api-dom has a slightly revised internal structure (also a breaking change, but nothing major & unavoidable). All bundled Zig examples[1] in the repo have been updated too, take a look for reference (if needed).

FYI More details about the Zig language changes here:
https://ziglang.org/download/0.15.1/release-notes.html#Language-Changes

Specifically, the removal of usingnamespace has had a major impact on the existing handling of generated types in these wasm-api support packages (or your own) and now forces an additional level of hierarchy in terms of namespacing. This is because usingnamespace enabled a form of namespace merging, which allowed the generated WASM⭤TS interop types (written to their own sourcefile) to be merged/hoisted into the main library module.

For example, previously after importing const dom = @import("wasm-api-dom"); we could refer to a type via dom.WindowInfo. Now with namespace merging removed, we have to use dom.types.WindowInfo. As I said, it's not a major departure, but a breaking change nonetheless[2]...

The build.zig file bundled with https://thi.ng/wasm-api is now also only compatible with Zig 0.15.1 (for now). Build files for older Zig versions are still included too (in the same directory)[3].

Lastly, once more for the record: The wasm-api bridge itself is NOT tied to Zig (or a particular version), however it's the main use case/language for my own WebAssembly use cases...

[1] https://github.com/thi-ng/umbrella/tree/develop/examples (all examples starting with zig-*)

[2] The existing design of these modules helped to keep these breaking changes to a minimum in userland code and these updates are all following the same uniform pattern (i.e. exposing interop types via modulename.types.TypeName...)

[3] https://github.com/thi-ng/umbrella/tree/develop/packages/wasm-api#using-the-zig-build-system

#ThingUmbrella#Zig#Ziglang#WebAssembly#WASM#TypeScript#JavaScript#Interop

  • Copy link
  • Flag this post
  • Block
Alan Zimmerman
Alan Zimmerman boosted
Daniel Kochmański
@jackdaniel@functional.cafe  ·  activity timestamp 2 months ago

I've made an official grant announcement for #ecl from @nlnet :

https://ecl.common-lisp.dev/posts/Web-ECL-Grant-Announcement.html

#lisp #foss #wasm

  • Copy link
  • Flag this post
  • Block
Daniel Kochmański
@jackdaniel@functional.cafe  ·  activity timestamp 2 months ago

I've made an official grant announcement for #ecl from @nlnet :

https://ecl.common-lisp.dev/posts/Web-ECL-Grant-Announcement.html

#lisp #foss #wasm

  • Copy link
  • Flag this post
  • Block
just small circles 🕊
just small circles 🕊 boosted
Orhun Parmaksız 👾
@orhun@fosstodon.org  ·  activity timestamp 2 months ago

Damn... Rust devs going crazy with these libraries.

⚒️ sledgehammer_bindgen 🦀

💥 Breaking the performance barrier of WASM/JS communication.

⚡ Faster Rust batched bindings for JS code.

⭐ GitHub: https://github.com/ealmloff/sledgehammer_bindgen

#rustlang #webassembly #wasm #javascript #performance #bindings #frontend #bindgen

Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
  • Copy link
  • Flag this post
  • Block
just small circles 🕊
just small circles 🕊 boosted
EuroRust
@eurorust@fosstodon.org  ·  activity timestamp 2 months ago

Covered:

🦀 Build an HTTP handler in Rust
🦀 Deploy it with modern Wasm runtimes
🦀 Debug, profile, and monitor your Wasm backend
🦀 Wrap it up with a working calculator API

All the details are here ➡️ https://eurorust.eu/workshops/long-live-webassembly/?utm_source=mastodon&utm_medium=social&utm_campaign=2025-07-17-workshop-jonas-kruckenberg

#RustLang#WebAssembly#Wasm#RustWorkshop#EuroRust25#Mainmatter

🧵2/3

  • Copy link
  • Flag this post
  • Block
Orhun Parmaksız 👾
@orhun@fosstodon.org  ·  activity timestamp 2 months ago

Damn... Rust devs going crazy with these libraries.

⚒️ sledgehammer_bindgen 🦀

💥 Breaking the performance barrier of WASM/JS communication.

⚡ Faster Rust batched bindings for JS code.

⭐ GitHub: https://github.com/ealmloff/sledgehammer_bindgen

#rustlang #webassembly #wasm #javascript #performance #bindings #frontend #bindgen

Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
  • Copy link
  • Flag this post
  • Block
EuroRust
@eurorust@fosstodon.org  ·  activity timestamp 2 months ago

Covered:

🦀 Build an HTTP handler in Rust
🦀 Deploy it with modern Wasm runtimes
🦀 Debug, profile, and monitor your Wasm backend
🦀 Wrap it up with a working calculator API

All the details are here ➡️ https://eurorust.eu/workshops/long-live-webassembly/?utm_source=mastodon&utm_medium=social&utm_campaign=2025-07-17-workshop-jonas-kruckenberg

#RustLang#WebAssembly#Wasm#RustWorkshop#EuroRust25#Mainmatter

🧵2/3

  • Copy link
  • Flag this post
  • Block
just small circles 🕊
just small circles 🕊 boosted
openSUSE Linux
@opensuse@fosstodon.org  ·  activity timestamp 2 months ago

How hard can it be? That question led to a #WebAssembly adventure at #oSC25, featuring music tech, retro vibes, and real-world lessons on porting apps like #LGPT across devices! From handhelds to the browser, this one’s for the tinkerers. #openSUSE#WASMhttps://youtu.be/pq-04MlLAnM?si=m4y_MdO-dkh7wV11

  • Copy link
  • Flag this post
  • Block
openSUSE Linux
@opensuse@fosstodon.org  ·  activity timestamp 2 months ago

How hard can it be? That question led to a #WebAssembly adventure at #oSC25, featuring music tech, retro vibes, and real-world lessons on porting apps like #LGPT across devices! From handhelds to the browser, this one’s for the tinkerers. #openSUSE#WASMhttps://youtu.be/pq-04MlLAnM?si=m4y_MdO-dkh7wV11

  • Copy link
  • Flag this post
  • Block
just small circles 🕊
just small circles 🕊 boosted
Thomas Steiner :chrome:
@tomayac@toot.cafe  ·  activity timestamp 2 months ago

New #WasmAssembly podcast 🎙️ episode! Dart, Flutter, and WasmGC:

🍿 https://www.youtube.com/watch?v=vgOABOvtBT8
🎧 https://wasmassembly.libsyn.com/dart-flutter-and-wasmgc-with-mer-aacan-and-martin-kustermann

🚀 In this episode of WasmAssembly, I chat with Ömer Ağacan & Martin Kustermann from the Dart team at Google about #Dart, #Flutter, #WasmGC, dart2wasm vs dart2js, Jaspr, and the future of #WebAssembly—both in and beyond the browser. A must-listen for #Wasm nerds!

  • Copy link
  • Flag this post
  • Block
Thomas Steiner :chrome:
@tomayac@toot.cafe  ·  activity timestamp 2 months ago

New #WasmAssembly podcast 🎙️ episode! Dart, Flutter, and WasmGC:

🍿 https://www.youtube.com/watch?v=vgOABOvtBT8
🎧 https://wasmassembly.libsyn.com/dart-flutter-and-wasmgc-with-mer-aacan-and-martin-kustermann

🚀 In this episode of WasmAssembly, I chat with Ömer Ağacan & Martin Kustermann from the Dart team at Google about #Dart, #Flutter, #WasmGC, dart2wasm vs dart2js, Jaspr, and the future of #WebAssembly—both in and beyond the browser. A must-listen for #Wasm nerds!

  • Copy link
  • Flag this post
  • Block
d@nny disc@ mc²
d@nny disc@ mc² boosted
SeanOMik
@SeanOMik@hachyderm.io  ·  activity timestamp 3 months ago

I have implemented an API for WASM modules for a game engine. I want to create tests for it to make sure that the API that the WASM scripts use are correctly implemented.

How could I build a test suite for this? Since I would have to compile the modules as well, I doubt just "cargo test" would be enough. Is there another testing tool that could be better for this?

#wasm #rust #softwaredevelopment

  • Copy link
  • Flag this post
  • Block
SeanOMik
@SeanOMik@hachyderm.io  ·  activity timestamp 3 months ago

I have implemented an API for WASM modules for a game engine. I want to create tests for it to make sure that the API that the WASM scripts use are correctly implemented.

How could I build a test suite for this? Since I would have to compile the modules as well, I doubt just "cargo test" would be enough. Is there another testing tool that could be better for this?

#wasm #rust #softwaredevelopment

  • Copy link
  • Flag this post
  • Block
vruz
@vruz@mstdn.social  ·  activity timestamp 3 months ago

Web's superpower is its openness. Native JS templating makes JS more ergonomic. Direct WASM→DOM makes the web more OPEN. Which better serves the platform's future? The web shouldn't privilege one language. True platform evolution means equal access to core capabilities for all languages. That's how we get the next generation of web innovation. #compsci#webdev #webstandards#opensource

vruz
@vruz@mstdn.social replied  ·  activity timestamp 3 months ago

Direct WASM→DOM access doesn't leave JavaScript behind - JS could use the same fast path! We could even build Fagnani's exact templating API as a reference implementation on top of it. But unlike a JS-only solution, the platform stays open for potentially superior approaches in ANY language. Rust might build something faster. Zig might build something smaller. That's the kind of competition through collaboration that drives innovation. Everybody wins wins wins. #compsci#webdev #wasm#javascript

  • Copy link
  • Flag this comment
  • Block
Log in

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.0-rc.2.21 no JS en
Automatic federation enabled
  • Explore
  • About
  • Members
  • Code of Conduct
Home
Login