Skip to content

nx.js v1.0.0-beta.4

Latest

Choose a tag to compare

@github-actions github-actions released this 15 Jun 00:50
· 3 commits to main since this release
273927a

Highlights

  • Adds WebGL2 support for screen.getContext('webgl2'), backed by EGL + Mesa/nouveau OpenGL ES 3 on the Switch GPU.
  • Adds the Web Audio API with a native graph engine, plus AudioContext, OfflineAudioContext, AudioBuffer, source/gain/stereo-panner nodes, automation, and FFmpeg-backed decodeAudioData().
  • Adds a Video element backed by FFmpeg for software-decoded video playback, audio sync, seeking, looping, and drawing frames with Canvas drawImage().
  • Adds Web Bluetooth (navigator.bluetooth) for BLE GATT client workflows and WebUSB (navigator.usb) for libnx usb:hs device access.
  • Adds NSZ, XCI, and XCZ support to @nx.js/install-title, with a unified install() flow.
  • Adds a transparent fused native fast path for Switch.file(path).stream().pipeThrough(new DecompressionStream(format)), dramatically improving streaming decompression throughput and applet-mode memory safety.

Runtime And Performance

  • Adds [threadpool] config for libuv worker count and stack size with applet-safe defaults, plus native-heap back-pressure for async operations.
  • Adds [renderer] gpu_cache to tune Skia Ganesh GPU cache budgets.
  • Gamepad.id now exposes hardware identity where available and gamepadconnected / gamepaddisconnected events now fire.
  • Decoded images now memoize their wrapped SkImage so repeated GPU drawImage() calls avoid re-uploading the same pixels.
  • The console avoids unnecessary re-renders once an app owns the screen while keeping console.canvas live for apps that composite it.

Fixes And Stability

  • Defaults applet mode back to jitless for reliable low-memory startup, while keeping application mode on full JIT and allowing explicit applet JIT opt-in.
  • Hardens applet-regime display bring-up and large allocations so OOM paths throw or fall back instead of aborting or crashing.
  • V8 fatal/OOM callbacks now log diagnostics and exit cleanly instead of poisoning applet launches.
  • Fixes atob()/btoa() binary-string conformance and forgiving-base64 behavior.
  • Restores duck-typed BufferSource support for native APIs, fixing IPC struct calls used by packages such as @nx.js/install-title.
  • Fixes drawImage() type confusion between Canvas and Image sources.
  • Fixes AmbientLightSensor.start() timer leaks.

Docs And Examples

  • Updates documentation for the v1 V8/libuv/Skia runtime, configuration, packaging, modules, rendering, audio, video, Bluetooth, and install-title flows.
  • Adds example apps for Web Audio, Video, WebGL, Bluetooth, console screen usage, and WebUSB RCM payload delivery.

Full Changes