Skip to content

Track language binding support on Emscripten #524

Description

@sargunv-bot

The native Emscripten target and the Rust binding build and test in browsers for both WebGL and WebGPU. The target installs archives and link metadata for a final emcc link, which the Rust browser test harness consumes. This issue tracks the remaining bindings and records their current toolchain boundaries.

Status values:

  • Tested — CI runs this binding's own suite in a browser.
  • Not started — no Emscripten coverage yet, and the toolchain allows it.
  • Blocked — an upstream toolchain gap has to close first.
Binding Status Work required
Rust Tested None. Keep the WebGL and WebGPU browser suites.
C# Not started Large: add a browser WebAssembly target, pass the native archives through NativeFileReference, match the repository Emscripten version and pthread flags, adapt callbacks and native loading, and add browser tests.
Zig Not started Large: consume the installed archives and link metadata, add Emscripten-specific final-link logic, and run the existing WebGL-aware tests in a browser.
Dart Blocked The Dart Web toolchain cannot compile this binding's dart:ffi API. Support requires a separate JavaScript or WebAssembly API.
Go Blocked Go's js/wasm port has no cgo ABI for Emscripten libraries. Support requires upstream cgo WebAssembly work or a separate JavaScript API.
Kotlin Blocked Kotlin/Wasm cannot consume Emscripten C ABI archives through Kotlin/Native cinterop. Support requires a JavaScript or WebAssembly API.
Python Blocked The native library requires pthreads, while the PyEmscripten wheel ABI does not permit -pthread. Support requires a threaded Python/Emscripten host and extension ABI.
Swift Blocked The official Swift WebAssembly SDK targets WASI rather than Emscripten. Support requires an Emscripten-compatible Swift target or a different native platform target.

Keep Blocked rows unsupported until their upstream runtime constraints change.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    browserSupport for the browser platform

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions