Key changes
Features:
-
New shared memory type, Shareable, a building block for Reanimated's Shared Value implementation. See Docs and blogpost for more details.
-
Stable C++ API bindings for libraries to use.
-
New
runOnRuntimeSyncAPI - allows you to schedule a worklet on any Worklet Runtime synchronously. Docs- feat(Worklets):
runOnRuntimeSyncby @skusnierz in #8224
- feat(Worklets):
-
New scheduling APIs,
scheduleOnRuntimeWithId,runOnRuntimeSyncWithId- allows you to schedule worklets on Worklet Runtimes just by knowing their id. Docs -
New
runOnRuntimeAsyncAPI - allows you to schedule a worklet on any Worklet Runtime asynchronously and return a promise with the result. Docs- feat: add runOnRuntimeAsync by @riteshshukla04 in #8901
-
New useful API shorthands for checking current runtime context. Docs
-
New Worklets Babel plugin option,
strictGlobal, that prevents accidental captures of variables from global scope in worklets. Docs -
You can now schedule worklets on Worklet Runtimes even outside of Bundle Mode, but with some limitations. There are no limitations when using the Bundle Mode.
Bundle mode improvements:
-
You no longer need to patch React Native to use Bundle Mode, meaning that you can use pre-built React Native for faster compilation.
-
You no longer need to re-compile Worklets when switching between Bundle Mode and non-Bundle Mode (metro cache reset is still required).
-
(experimental) You can now run network request in Bundle Mode Docs
Docs:
- Documentation explaining what are closures in context of worklets, how they work and how to use them. Docs
Other changes
- chore: modernize build.gradle scripts by @tjzel in #8707
- chore(Worklets): Bundle Mode patches for 0.83.0 by @tjzel in #8737
- fix: prefab headers locations by @tjzel in #8747
- fix(Worklets): Add HERMES_V1_ENABLED flag to iOS podspec for Hermes V1 compatibility by @kimchi-developer in #8754
- feat(Worklets): docs for plugin types by @tjzel in #8633
- fix(Worklets): missing sideEffects property by @tjzel in #8760
- chore(Worklets): cleanup metro overrides for bundle mode by @tjzel in #8851
- refactor(Worklets): obtain BundleMode flag from static feature flags by @tjzel in #8853
- refactor(Worklets): dont use @react-native/babel-preset for unit tests by @tjzel in #8862
- fix(Worklets): Synchronizable serialization for objects outside of Bundle Mode by @tjzel in #8887
- chore(Worklets): rename __generatedWorklets dir by @tjzel in #8894
- feat(Worklets): docs for new bundle mode by @tjzel in #8759
- fix(Worklets): false-positive inlineStyles warning on computed [value] by @tjzel in #8897
- fix: Simplify run-loop and always attach JNI on Android by @mrousavy in #8905
- Fix bundle mode on windows by @OrfeasZ in #8910
- fix(worklets): avoid HERMES_V1_ENABLED macro redefinition on RN 0.84+ by @kimchi-developer in #8908
- chore(Worklets): fix runAsync mock signature by @tjzel in #8916
- refactor(Worklets): move serializable factories by @tjzel in #8560
- feat: docs for runOnRuntimeAsync by @riteshshukla04 in #8911
- fix: sidebar title of runtimeAsync by @riteshshukla04 in #8921
- docs(Worklets): add gtm by @p-malecki in #8937
- docs: add gtm by @p-malecki in #8936
- Remove workaround for dynamic frameworks by @tomekzaw in #8927
- chore(Worklets): compatibility docs by @tjzel in #8971
- fix: free __cxa_demangle allocations in SingleInstanceChecker by @jingjing2222 in #8964
- fix(Worklets): pulling native implementation for Jest tests by @tjzel in #8988
- chore(Worklets): cleanup dispatch functions and tests by @tjzel in #9006
- [docs] Fix scheduleOnRN call to remove extra invocation by @piaskowyk in #9017
- refactor(Worklets): always spin AnimationFrameQueue by @tjzel in #8900
- fix: Fix native
matchVersionnot allowing patch version mismatches by @kitten in #9018 - chore(Worklets): install serializer on UI Runtime by @tjzel in #9024
- chore(Worklets): merge isSynchronizable impl by @tjzel in #9027
- chore(Worklets): stabilize Serializable enum by @tjzel in #9025
- chore(Worklets): add RuntimeId type alias by @tjzel in #9026
- chore(Worklets): export unpackers in prod env by @tjzel in #9029
- fix: Reanimated synchronous events by @tjzel in #9057
- chore(Worklets): update createWorkletRuntime docs by @tjzel in #9030
- fix(Worklets): cascade raf callbacks with reanimated by @tjzel in #9080
- feat: stable API versioning checks by @tjzel in #9105
- feat: Reanimated x Worklets compilation compatibility CI by @tjzel in #8997
- fix(Worklets): remote function re-serialization by @tjzel in #9115
- chore(Worklets): update algolia keys by @tjzel in #9128
- release(Worklets): 0.8.0 by @tjzel in #9131
New Contributors
- @maxpotemkin made their first contribution in #8738
- @kimchi-developer made their first contribution in #8754
- @choi138 made their first contribution in #8733
- @p-malecki made their first contribution in #8793
- @roitium made their first contribution in #8821
- @patrickmichalik made their first contribution in #8794
- @radoslawrolka made their first contribution in #8831
- @huextrat made their first contribution in #8846
- @DouweBos made their first contribution in #8841
- @msynowski made their first contribution in #8878
- @5ZYSZ3K made their first contribution in #8869
- @riteshshukla04 made their first contribution in #8901
- @OrfeasZ made their first contribution in #8910
- @CDFN made their first contribution in #8976
- @AlexRixten made their first contribution in #8978
- @jingjing2222 made their first contribution in #8964
- @aljadan made their first contribution in #8995
- @kitten made their first contribution in #9018
- @YevheniiKotyrlo made their first contribution in #9055
Full Changelog: worklets-0.7.0...worklets-0.8.0