sigmoid.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A social space for people researching, working with, or just interested in AI!

Server stats:

572
active users

#webassembly

3 posts2 participants2 posts today

Yesterday I released new versions of 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 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:
ziglang.org/download/0.15.1/re

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 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] github.com/thi-ng/umbrella/tre (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] github.com/thi-ng/umbrella/tre

thi.ng/wasm-apiGeneric, modular, extensible API bridge and infrastructure for hybrid JS & WebAssembly projects

🎥 New Video Online – Rust in Paris 2025 🦀

At the latest edition of Rust in Paris, Ben Brandt shared how WebAssembly and Rust power a serverless AI runtime that lets enterprises and governments deploy AI logic without the pain of constant updates.

👉 Watch the full talk: youtu.be/PSkUOIgYs0Y

Huge thanks to Ben for his vision, expertise, and contribution to the Rust and AI communities 🙌

The first non-BASIC programming language I learned was Karel the Robot. It’s a pseudo-Algol-derived teaching language. We had a Honeywell mainframe (this high school didn’t get their supercomputer until after I left for Japan) to build and run our programs.

Today I learned there’s a WebAssembly-based version and IDE that runs in the browser. Made me smile.

#karel #structuredprogramming
#webassembly

Karel: en.wikipedia.org/wiki/Karel_(p

Project: github.com/giper45/KarelWebAss

Demo: karel-webassembly.netlify.app/

en.wikipedia.orgKarel (programming language) - Wikipedia