Skip to content

Releases: mrousavy/nitro

Release 0.17.0

19 Nov 19:08
Compare
Choose a tag to compare

0.17.0 (2024-11-19)

As promised, this release is all about Promises! 🪄✨

❗️ Breaking

  • For C++ Hybrid Objects: std::future<T> is now Promise<T>!

✨ Features

  • Allow ThreadPool to grow dynamically (#345) (f94cfbc)
  • Enable ProGuard for release builds in Nitro Example (#342) (9f7728a)
  • Add new Promise<T> implementation for C++ (#343) (8832bc5)
  • Use new, faster, simpler Promise<T> in Nitrogen (#349) (110dcbf)
  • Allow awaiting JS Promise in C++ (#354) (b6277ea)
  • Support awaiting JS Promise in Kotlin and Swift (#355) (6da4f98)

💨 Performance Improvements

  • Only enable -O2 in release, use -O0 in debug (#356) (5df16ca)

🐛 Bug Fixes

  • Fix Promise calls being stuck in rare cases when scheduling a lot of promises at once (#345) (f94cfbc)
  • Make Promise catch any Throwable instead of Error subclass (#337) (d76d0c0)
  • Fix Variants being stripped in release (#352) (8c09f6d)
  • Fix "legacy" enums breaking Swift compiler (#346) (cb9cf99)
  • Don't test bounceChild(Base) in release because that is optimized away (#353) (3626cb3)
  • Fix Promise::awaitFuture actually locking threads (#347) (8cd7a29)
  • Fix Promise<void> generation on Android (#357) (023c1ab)

📚 Documentation

  • Add "Events" info to Callbacks docs page (ce4c415)
  • Add TestObject.nitro.ts to example playground (b824959)
  • Add latest release to docs (728ea5c)
  • Add Vercel analytics to docs (#332) (834a2ff)
  • Clean up unused images (#334) (e461b17)
  • Update docs to use new Promise<T> type instead of std::future<T> (#348) (e931834)

Release 0.16.2

13 Nov 12:37
Compare
Choose a tag to compare

0.16.2 (2024-11-13)

You can now download the Nitro Example App here and run Benchmarks for yourself:

✨ Features

🐛 Bug Fixes

  • Fix Promise<ArrayBuffer> return type generated wrong in Swift (#330) (372fdc8)

Release 0.16.1

12 Nov 19:17
Compare
Choose a tag to compare

0.16.1 (2024-11-12)

✨ Features

🐛 Bug Fixes

  • Fix returning arrays of primitives not being properly sized in Java (#328) (c027f54)

Release 0.16.0

12 Nov 17:55
Compare
Choose a tag to compare

0.16.0 (2024-11-12)

✨ Features

🐛 Bug Fixes

  • Add @DoNotStrip/@Keep annotations to example hybrid objects (#317) (1a313c5)
  • Fix HybridObjectRegistry not being found with JNI in release (#316) (1f3a004)
  • Include nitrogen/ folder in template/ (#315) (3992b6f)
  • Perform safer checks for toContain(..) in example, and add NitroModules.hasNativeState(value) (#324) (c491d39)

📚 Documentation

  • Add bundle install to docs (eccd352)
  • Add HybridObject import to nitrogen docs (5038497)
  • Restructure contributing (02fc416)
  • Upgrade to Docusaurus v3.6 - enable Docusaurus Faster (#308) (6682b2d)

Release 0.15.0

06 Nov 14:18
Compare
Choose a tag to compare

0.15.0 (2024-11-06)

✨ Features

  • Upgrade RN to 0.76 (#295)

🐛 Bug Fixes

  • Import Nitro core in Kotlin structure and function (#298)
  • Throw if a reserved keyword is used in nitrogen (#299)
  • Don't use xcpretty for iOS Build CI (#287)
  • Fix JNI destructor being potentially called from a wrong Thread (#286)
  • Exclude pre-packaged RN libs (#285)

Release 0.14.1

05 Nov 10:19
Compare
Choose a tag to compare

0.14.1 (2024-11-05)

🐛 Bug Fixes

📚 Documentation

  • Fix links in other issue templates (1718912)
  • Fix troubleshooting link in BUILD_ERROR template (#268) (6774851)

Release 0.14.0

30 Oct 12:54
Compare
Choose a tag to compare

0.14.0 (2024-10-30)

Fixes a few issues, and adds a new JS-only function getHybridObjectConstructor(...) which allows you to use new and instanceof with HybridObjects:

// uses NitroModules.createHybridObject<Image>('Image') under the hood
const HybridImage = getHybridObjectConstructor<Image>('Image')

const image1 = new HybridImage()
const image2 = new HybridImage()
const isImage = image1 instanceof HybridImage

✨ Features

🐛 Bug Fixes

📚 Documentation

  • Add docs for swift native view with Weak Ref (#243) (5dffa42)

Release 0.13.0

19 Oct 10:37
Compare
Choose a tag to compare

0.13.0 (2024-10-19)

✨ Features

  • Allow type T = {...} definition for structs (#248) (543c3cb)

💨 Performance Improvements

  • Avoid heap map ([:]) by just passing around retained unsafe pointers (#238) (59526ab)

🐛 Bug Fixes

  • Fix wrong name in codegen'd Onload.{hpp,cpp,kt} (#242) (b3e790c)

Release 0.12.0

17 Oct 16:59
Compare
Choose a tag to compare

0.12.0 (2024-10-17)

✨ Features

  • Move HybridObject Swift -> C++ bridge to Swift and call safely (now HybridObject?/[HybridObject] works!) (#232) (a624a0a), closes #237
  • Prettify Prototype names (#229) (2f24d28)
  • Use more precise C++ std errors (e.g. invalid_argument) (#179) (5f4d61e)

💨 Performance Improvements

  • Use some instead of any for Swift protocols (#215) (fcd7016)

🐛 Bug Fixes

  • Add _Nonnull modifier to void* types for Swift (#231) (6803be8)
  • Add packagingOptions.excludes to template (c0ae25b)
  • Add more guards to nitrogen (#208) (c44c2c1)
  • Add nullability modifier for Closure (ef135f2)
  • Allow functions as properties again (#228) (9e70d3f)
  • Also prefix i with __ (#207) (0d77241)
  • Also run bridge conversion in std::optional type helper (#230) (26de266)
  • Enable DEFINES_MODULE for stricter modular headers (#235) (b9bfb24)
  • Fix sed command on CI on Linux (c712fb7)
  • Fix Array of enums not properly using .rawValue (#209) (7218700)
  • Fix custom hermesCommand location for monorepo setup for release builds (#223) (f2e86d3)
  • Make ArrayBufferHolder accept a _Nonnull pointer (660de52)
  • Make Nitro core compile on non-react-native environments (#195) (57e7f26)
  • Prefix all nitrogenerated variable names with __ (#205) (668245e)
  • Properly deal with non-arrays in podspec (#234) (96c8a32)
  • Regenerate nitro specs (4f1bf61)
  • Use any for protocol conformance in Swift (#206) (ec81637)
  • Wrap any TSpec in braces in Swift to allow for optionals in future (c1bcb46)

📚 Documentation

  • Add minimum requirements (08f4935)
  • Create robots.txt (6a8b4c6)
  • Create Troubleshooting guide (#220) (4dd2669)
  • Explain Inheritance in Hybrid Object docs (#183) (95553fe)
  • Explain that you need an example app for the library template (#201) (3eb39b8)
  • Fix /nitro/ baseUrl replacement for Algolia (56ad78c)
  • Fix brief 404 page flashing in docs (#194) (2bf4e61)
  • Fix broken link in markdown table (c101fb2)
  • Fix favicon? kinda (35ddd6e)
  • More precise base methosd (2b5899f)
  • Update comparison.md fixing a broken link (#198) (b730a9a)
  • Update Inheritance docs to be easier to follow (#216) (3a8ea7c)
  • Update meta tags (97a6dd8)
  • Update minimum requirements (f6785e1)

Release 0.11.0

07 Oct 13:53
Compare
Choose a tag to compare

0.11.0 (2024-10-07)

✨ Features

💨 Performance Improvements

  • Inline hybridContext and memorySize (#178) (c66f2e5)
  • Mark all protocols as AnyObject, since they're always classes (#176) (0d06c78)

🐛 Bug Fixes

  • Provide helpful error message if this is not bound (#157) (377fbd8)
  • Remove unnecessary header import (6cd1a95)

📚 Documentation