Skip to content

v2.0.7 - Desktop support and leaner npm package

Latest

Choose a tag to compare

@Preeternal Preeternal released this 06 Jul 19:24

This release line starts desktop support for React Native out-of-tree
platforms. macOS support lands through react-native-macos; React Native
Windows support lands through react-native-windows.

Added

  • Added experimental macOS support for react-native-macos.
  • Added a separate macOS example workspace in examples/macos.
  • Added a macOS Zig prebuilt xcframework at
    third_party/zig-files-hash-prebuilt/macos/ZigFilesHash.xcframework.
  • Added scripts/build-zig-macos.sh for rebuilding the macOS Zig prebuilt.
  • Added experimental Windows support for react-native-windows.
  • Added a separate Windows example workspace in examples/windows.
  • Added Windows Zig prebuilt .lib artifacts for Win32, x64, and ARM64
    at third_party/zig-files-hash-prebuilt/windows.
  • Added scripts/build-zig-windows.sh for rebuilding Windows Zig prebuilts.
  • Added desktop development notes and workspace commands to CONTRIBUTING.md.
  • Added release benchmark snapshots for experimental macOS and Windows Zig
    desktop support to BENCHMARKS.md.
  • Added platform status badges and short desktop support links to README.md.

Changed

  • The podspec now declares both iOS and macOS platforms.
  • macOS uses the Zig engine only. The native Apple engine switch remains iOS
    specific.
  • Windows uses the Zig engine only. There is no Windows native-engine switch.
  • Updated the bundled Zig core to zig-files-hash v0.0.6. Windows Zig
    prebuilts are rebuilt with bundled compiler-rt so MSVC consumers do not hit
    unresolved runtime helpers such as __divti3 when linking
    zig_files_hash.lib.
  • iOS and macOS Zig xcframework builds now expose only the C API headers in
    their Headers directories instead of the full Zig source tree.
  • The npm package allowlist now separates repository build inputs from
    consumer package contents. Source submodules remain in the repository for
    maintainers, while npm users receive only the native build inputs needed by
    Gradle/CocoaPods.
  • The npm package no longer includes large unused upstream directories such as
    third_party/xxhash/tests, third_party/xxhash/cli,
    third_party/blake3/src, third_party/blake3/benches, and
    third_party/zig-files-hash/src/*.zig.
  • scripts/check-packed-prebuilts.sh now verifies the minimal required
    third-party artifacts and fails if unnecessary third-party source/test
    directories re-enter the packed tarball.
  • The Windows example uses the Hermes compiler from the React Native Windows
    Hermes NuGet package for release bundling, keeping the generated bytecode
    aligned with the RNW runtime used by the app.

Package size

Local npm pack --dry-run --json numbers after this cleanup and the Windows
prebuilt addition:

  • package entries: 310 -> 106
  • unpacked size: 24.35 MB -> 23.24 MB
  • tarball size: 5.75 MB -> 5.98 MB

The tarball is slightly larger than before because this release adds three
Windows .lib prebuilts. The cleanup still removes unused upstream sources and
keeps the shipped payload focused on required native build inputs. Most of the
remaining package size is the expected Zig prebuilt payload for Android, iOS,
macOS, and Windows.