Skip to content

Releases: mrousavy/nitro

Release 0.32.0

23 Dec 12:00

Choose a tag to compare

0.32.0 (2025-12-23)

Nitro 0.32 is a big release:

  • new DX/convenience features (such as making all C++/Swift structs Equatable/operator==, or making Kotlin structs/enums extensible via companion object)
  • huge performance improvements by caching jsi::PropNameID (measured ~30% faster performance with structs)

❗️Breaking Changes

  • Generated Swift structs' individual properties should be read-only. Their setters have been removed to make this more obvious. (#1086) (78e17ba)

✨ Features

  • Add companion object to Kotlin enums/structs (#1084) (8cfcae6)
  • Make all C++ (and Swift) structs implement operator== (Equatable) (#1019) (ac0aee6)
  • Use OSLog instead of NSLog (#1100) (24d60bc)

💨 Performance Improvements

  • Cache jsi::PropNameIDs (makes Nitro 30% faster) (#1114) (c942637)
  • Cache calls to common JS functions (like Promise, Date, ...) (#1112) (50322d9)
  • Add bulk converter for AnyMap.toHashMap() for Kotlin (~50% faster) (#1109) (4c7eb73)
  • Add bulk converter for AnyMap.fromMap(...) for Kotlin (~29% faster) (#1118) (5e5312a)
  • Inline static JNI enum fields (#1123) (9565faa)

🐛 Bug Fixes

  • Fix Record<string, number> generating wrong code in Kotlin/fbjni (#1061) (85a5a0b)
  • Fix Android import path for ReactNativeVersion.h (#1108) (502fd6e)
  • Fix missing JUnit import for Promise<void> on Kotlin (#1105) (19646da)
  • Implement ThreadUtils in pure C++ on iOS (#1101) (b8ca08f)
  • Make structs final to prevent accidental subclassing (#1085) (1c11b25)
  • Prioritize pthread over of GCD APIs for getThreadName() (a9d5fad)
  • Remove postinstall hook from individual packages (#1088) (e7eae48)
  • Remove Swift struct setters, as they should be immutable (#1086) (78e17ba)

📚 Documentation

Release 0.32.0-beta.0

18 Dec 22:03

Choose a tag to compare

Release 0.32.0-beta.0 Pre-release
Pre-release

0.32.0-beta.0 (2025-12-18)

Nitro 0.32 is a big release:

  • new DX/convenience features (such as making all C++/Swift structs Equatable/operator==, or making Kotlin structs/enums extensible via companion object)
  • huge performance improvements by caching jsi::PropNameID (measured ~30% faster performance with structs)

❗️Breaking Changes

  • Generated Swift structs' individual properties should be read-only. Their setters have been removed to make this more obvious.

✨ Features

  • Add companion object to Kotlin enums/structs (#1084) (8cfcae6)
  • Make all C++ (and Swift) structs implement operator== (Equatable) (#1019) (ac0aee6)
  • Use OSLog instead of NSLog (#1100) (24d60bc)

💨 Performance Improvements

  • Add bulk HashMap conversion method to AnyMap to make conversion faster (#1109) (4c7eb73)
  • Cache jsi::PropNameIDs (makes Nitro 30% faster) (#1114) (c942637)
  • Cache calls to common JS functions (like Promise, Date, ...) (#1112) (50322d9)

🐛 Bug Fixes

  • Fix Record<string, number> generating wrong code in Kotlin/fbjni (#1061) (85a5a0b)
  • Fix Android import path for ReactNativeVersion.h (#1108) (502fd6e)
  • Fix missing JUnit import for Promise<void> on Kotlin (#1105) (19646da)
  • Implement ThreadUtils in pure C++ on iOS (#1101) (b8ca08f)
  • Make structs final to prevent accidental subclassing (#1085) (1c11b25)
  • Prioritize pthread over of GCD APIs for getThreadName() (a9d5fad)
  • Remove postinstall hook from individual packages (#1088) (e7eae48)
  • Remove Swift struct setters, as they should be immutable (#1086) (78e17ba)

📚 Documentation

Release 0.31.10

24 Nov 15:20

Choose a tag to compare

0.31.10 (2025-11-24)

✨ Features

  • Add AnyMap.fromMap(..., ignoreIncompatible: ...) to Kotlin (#1059) (2ce6d08)

🐛 Bug Fixes

Release 0.31.9

20 Nov 16:16

Choose a tag to compare

0.31.9 (2025-11-20)

🐛 Bug Fixes

  • Add explicit type for better TypeScript errors on wrapped callbacks on Nitro views (#1038) (bc51dfd)
  • Destroy Kotlin Functions under jni::ThreadScope (#1052) (2bea9f4)
  • Expose BoxedHybridObject as a public type (#1053) (8cb3fef)

Release 0.31.8

19 Nov 14:34

Choose a tag to compare

0.31.8 (2025-11-19)

🐛 Bug Fixes

  • Fix (Error) => void not compiling on JNI (#1051) (d04af3d)

Release 0.31.7

18 Nov 12:09

Choose a tag to compare

0.31.7 (2025-11-18)

🐛 Bug Fixes

Release 0.31.6

12 Nov 22:07

Choose a tag to compare

0.31.6 (2025-11-12)

✨ Features

🐛 Bug Fixes

  • Fix Promise<T?> failing to resolve when passing null in Kotlin (#1034) (f12343c)
  • Fix arrays of HybridObjects generating wrong fbjni/Kotlin code (#1039) (b17a556)
  • Fix cases where Arrays of functions, AnyMap, ArrayBuffer or Promise<...> generates wrong Kotlin code (#1042) (60c71fc)
  • Make JNull hold a global_ref instead of an alias_ref for static field NULL (#1040) (1a65bda)

Release 0.31.5

09 Nov 08:21

Choose a tag to compare

0.31.5 (2025-11-09)

✨ Features

  • Add .resolve() and .resolved() overloads for Promise<Void> in Swift/Kotlin (#1020) (f86d450)
  • Support complex/merged TS interfaces (#1030) (1183b44)

🐛 Bug Fixes

  • Fix nitrogen init with spaces in path (#1026) (2760a79)
  • Make .parallel [@preconcurrency](https://github.com/preconcurrency) (#1013) (2211d2d)

Release 0.31.4

30 Oct 18:09

Choose a tag to compare

0.31.4 (2025-10-30)

✨ Features

  • Add AnyMap <> Any converters and AnyMap::merge (#1012) (6593698)

Release 0.31.3

28 Oct 12:12

Choose a tag to compare

0.31.3 (2025-10-28)

✨ Features

🐛 Bug Fixes

  • Allow overriding base methods in Kotlin HybridObjects (#988) (7b542e0)
  • Also use defineProperty(...) for Prototype Methods (#987) (3f1f072)
  • Make Platforms in extends HybridObject<P> required (#1003) (69a760f)
  • Make Kotlin struct hold native types again (#989) (f32425c)
  • Throw if no generic args are passed (#1001) (d87385e)
  • Throw in nitrogen if user wants to override a base member (like hashCode() in Kotlin.Any) (#991) (287dfe9)

📚 Documentation