What's changed
Worklet Runtimes created in Bundle Mode now ship a standalone networking module: XMLHttpRequest with text, arraybuffer and blob responses, Blob, FileReader, fetch, Headers, Request, Response, FormData, AbortController and AbortSignal. It replaces the earlier networking preview and its FETCH_PREVIEW_ENABLED feature flag. createWorkletRuntime accepts a new enableNetworking option, which defaults to true and is forced off on runtimes without the Event Loop. (#10493, #10494, #10495, #10496, #10497, #10498 by @tjzel)
The Worklets Babel plugin has a Rust port built on OXC for Bundle Mode. It is available as react-native-worklets/plugin-oxc/babel, with prebuilt binaries for macOS, Linux and Windows on x64 and arm64. (#9518, #10608 by @tshmieldev)
createSynchronizable accepts a new fixedType option. A fixed-type Synchronizable holds a number or a boolean without serialization and exposes setDirty, a non-exclusive write that doesn't wait for other setDirty calls. On the C++ side Synchronizable is now an interface over std::variant values with a SynchronizableDynamic implementation. (#10296, #10295, #10294, #10293 by @tjzel)
Startup got faster. The native side of WorkletsModule is created on a background thread as soon as the module is created, so installTurboModule only attaches it to the RN Runtime. In Bundle Mode the bundle is evaluated on the UI Worklet Runtime on a background thread while the RN Runtime evaluates it, instead of on the JS thread in start. (#10489, #10490 by @tjzel)
Worklet Runtimes use the built-in Hermes microtask queue instead of a custom JS implementation. queueMicrotask enqueues native Hermes jobs, and the queue is drained after each requestAnimationFrame callback on the UI Runtime. (#10199, #10237 by @tjzel)
Serialization and the Babel plugin output got leaner. The Serializable handle is gone, makeShareable serializes its value eagerly into a retaining Serializable, and RetainingSerializable caches its value per runtime. Worklet closures are stored as arrays instead of objects, closure-free worklets are exported directly in Bundle Mode without factory wrappers, implicit worklet context objects are removed, and navigator is treated as a known global. (#10414, #10412, #10411 by @tjzel, #10264, #10506, #10517 by @tshmieldev, #10364 by @wcandillon)
Worklets can be integrated on iOS through Swift Package Manager via Package.swift and SPM integration metadata in react-native.config.js. (#10472 by @kacperzolkiewski)
React Native 0.88 is supported. (#10582 by @pawicao)
The release also makes Worklet Runtime teardown safer, so a synchronous call in flight on another thread finishes before the runtime is destroyed and pending jobs are aborted under the runtime lock, fixes several Synchronizable races and lock leaks, fixes an Android crash when the React instance is recreated while animations are running, fixes Babel plugin issues with JSX element names, module.exports assignments and workletized getters, setters and constructors, and fixes a crash when serializing objects with a __proto__ key.
Full changelog: worklets-0.12.2...worklets-0.13.0