Releases: mrousavy/nitro
Releases · mrousavy/nitro
Release 0.12.0
0.12.0 (2024-10-17)
✨ Features
- Move
HybridObject
Swift -> C++ bridge to Swift and call safely (nowHybridObject?
/[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
🐛 Bug Fixes
- Add
_Nonnull
modifier tovoid*
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
0.11.0 (2024-10-07)
✨ Features
- Add old-architecture support!! 🔥 (#175) (dc8f866)
- Make Nitro itself a Nitro Module (#175) (dc8f866)
- Set up Inheritance tests (#172) (f5d90a7)
- Support
HybridObject
s inheritance!! 🎉 (#170) (66bae8c) - Support Inheritance in Kotlin 🎉 (#173) (aeada5d)
- Support inheritance in Swift 🎉 (#171) (1fa9691)
💨 Performance Improvements
- Inline
hybridContext
andmemorySize
(#178) (c66f2e5) - Mark all
protocol
s asAnyObject
, 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
- Amazingly incredibly sexy docs redesign (#158) (6d8a4ee)
- Create "Sync vs Async" documentation (73a442a)
- Deploy docs to https://nitro.margelo.com instead of GH (cc306a1)
- Explain that HybridObjects can be created from JS (6651e73)
- New Banner design (#159) (f7d2bb8)
- Update
site.webmanifest
(c4b10f5) - Update Discord link (f73b6fd)
Release 0.10.0
0.10.0 (2024-09-24)
✨ Features
- Add
NitroModules.box(...)
to support using Nitro Modules from any Runtime/Worklets context (#138) (1128d6a) - Add array support to Swift AnyMap (#146) (3550a51)
- Variants for Swift and Kotlin 🥳 (#148) (96d15ea)
🐛 Bug Fixes
- Don't generate autolinking files if nothing to autolink (#155) (b173aee)
- Explicitly check against
NDEBUG
on Android (89a5995) - fix android placeholders (#137) (1d50bd3)
- Fix C++ AnyMap array tests (402d66b)
- Fix optional parameters in callbacks (#143) (98d1c15)
- Fix tests (timeout) (5646db3)
- Remove unused
args
parameter increateHybridObject(..)
(#145) (adeffda)
📚 Documentation
Release 0.9.2
Release 0.9.1
0.9.1 (2024-09-16)
🐛 Bug Fixes
- Delete unused
_deleteFuncContext
member (563ad61) - Fix
NITRO_DEBUG
debug/release preprocessor directive (#132) (03e1a71) - Forward declare HybridObjects as well in Swift headers (#134) (df47316)
- Remove
LOG_MEMORY_ALLOCATIONS
test (d291f63)
📚 Documentation
- Fix typo (527fd99)
Release 0.9.0
0.9.0 (2024-09-16)
✨ Features
- Add iOS/Android native build and C++ lint CI (#120) (7f5ccf0)
- Create "Run Nitrogen" CI (d94ed36)
- Test all types in Example app (#131) (302b33b)
🐛 Bug Fixes
- Fix CI paths (51c8769)
- Fix cpp-adapter in template to properly autolink (d1acda5)
- Fix lint C++ CI (7fc7518)
- Fix nitrogen CI (#119) (670f35b)
- Fix optional enums in Nitrogen (#130) (f317ea2)
- Fix template cpp-adapter.cpp for Android (#122) (661f99f)
- Refactor
HybridObject
parser in Nitrogen (allow optional) (8d3f4a1) - Remove date from nitrogen'd files (beee698)
- Use
findClassStatic
forcreateHybridObject
to fix crash on reload (#128) (cec6887)
📚 Documentation
- Add some disclaimers about benchmarks (64a4ea6)
- Create Configuration (
nitro.json
) docs (a640ad6) - Fix missing
autolinking
entry (9ac1375) - Rename
nitrogen
tonitro-codegen
for now (e6ed5d0) - Update "Using Nitro in your app" docs (b7a9ffd)
- Update benchmark wording (40da292)
- Update benchmark wording a bit (baea303)
- Update Nitrogen docs (7c836e4)
Release 0.8.0
0.8.0 (2024-09-12)
✨ Features
- Add
ignorePaths
config option (#115) (854a78c) - Add
unregisterHybridObjectConstructor(...)
method for @jpudysz (9f2fd82) - Create a template for Nitro (#114) (5455709)
- Fully automatic autolinking for Nitrogen (#117) (0f04af9)
🐛 Bug Fixes
📚 Documentation
- Add
bigint
info (0d3c56b) - Add
Errors
section (b011020) - Add docs for view components (74b8cfe)
- Add info about
memorySize
(2d59fa9) - Create "Nitro Modules" docs (3aa7394)
- Create brownfield docs ("Using Nitro in your app") (86d2844)
- Create Performance Tips section (8ac9b34)
- Create sitemap (686e25d)
- Fix search index (31f7fc1)
- More docs! (#113) (dbdd7ff)
- Set up Algolia search (1278cb2)
Release 0.7.0
0.7.0 (2024-09-06)
✨ Features
- Add
ArrayBufferHolder.copy(of: ...)
to Swift (c96a1f5) - Create
ArrayBuffer.copyOf(...)
for Kotlin/Android (#102) (8e90799) - Some actual docs about types 📚 (#92) (7904975)
💨 Performance Improvements
🐛 Bug Fixes
- Fix
ArrayBuffer.copy
(d868a88) - Fix bridge not being used for callbacks (#106) (a1d12c6)
- Fix callback/closure parameter types being in Swift, instead of C++ (#97) (e1d302b)
- Fix callbacks with arguments in Swift (#105) (6138ab6)
- Properly forward move-only types (future!) (#104) (ded7c08)
- Rename
$0
to__result
/__error
to fix naming collisions (#95) (11deba2) - Rename
value
to__result
to fix naming collisions (#94) (f067775) - Side by side codeblocks (af6ec15)
📚 Documentation
Release 0.6.0
0.6.0 (2024-08-30)
Finally: Android/Kotlin support!
Breaking: All C++ Hybrid Objects now need to manually call the HybridObject(TAG)
constructor, since the specs only virtually inherit from HybridObject
.
✨ Features
- Add
dispose()
toHybridObject
(andregisterRawHybridMethod(...)
) (#82) (661bea4) - Add
NitroModules.hasNativeState
andNitroModules.removeNativeState
(#83) (3fa2fe9) - Add
Promise.await()
to Swift (ba1b59c) - Add Array support for Kotlin (#51) (6bd88b8)
- Add String extensions (
init
andstringValue
) to Swift enums (#87) (dc861b0) - Add support for
ArrayBuffer
in Kotlin Nitro Modules (#55) (3d4455e) - Annotate native callbacks with
@FastNative
(objects) or@CriticalNative
(primitives) (#52) (1c5fd39) - AnyMap for Kotlin/Android (#60) (b459224)
- Base for Kotlin methods (#48) (e222f98), closes #49
- Base for Kotlin modules (#45) (065736d), closes #46
- Create
AnyMapHolder
for Swift (#56) (dbadcc2) - Documentation base 📚 (#86) (f5b9c7d)
- Improve callbacks for Kotlin/Android (lambdas!) (#62) (a0104e9)
- Promises for Android/Kotlin (#59) (9b1b2c8)
- Safely wrap a Swift closure in a C++ accessible
SwiftClosure
struct and allow parameters bi-directionally (#81) (992c709) - Support
Record<K, V>
asMap<K, V>
in Kotlin/Android (#80) (9db7852) - Support arrays and objects in Kotlin
AnyMap
(#76) (254967a) - Support optionals in Kotlin (#50) (119f09f)
- TS + Lint in CI (#77) (a0e2fea)
- Upgrade to react-native 0.75 (#75) (64f071b)
- Use lower-camel case for Swift (#84) (72d0e60)
💨 Performance Improvements
- Speed up
await
(3e6e381)
🐛 Bug Fixes
- Fix example app usage on iOS (2c8bf91)
- Fix raw JSI functions and add test to example module (f4ef4b7)
- Replace
[#if](https://github.com/mrousavy/nitro/issues/if) DEBUG
with[#ifndef](https://github.com/mrousavy/nitro/issues/ifndef) NDEBUG
to make it work on Android (#53) (acca5ba) - Rewrite Logger to use platform
NSLog
/__android_log_print
(#54) (e7b9f41) - Safely
guard
nil unwrap for dictionary lookup in Swift (#79) (fd85cf5)
📚 Documentation
- Add some links to issues to the table (09d04ee)
Release 0.5.0
0.5.0 (2024-08-15)
✨ Features
- Add docs for
ArrayBufferHolder.isOwner
(f6de910) - Allow passing Swift callbacks to JS (#42) (46dc1f7)
- Support
Promise<T>
in Swift (#43) (2c277fe)
🐛 Bug Fixes
- Better error for config parsing (d4759ee)
- Escape comments in C++ (dfdf8d0)
- Filter duplicate Swift Cxx bridges (b39a8eb)
- Fix
getAllKnownTypes()
ID/Key collisions (#44) (7a93bf8) - fix docs (c4f55c8)
- Fix indentation (ab5b1f2)
- Only apply
[@escaping](https://github.com/escaping)
to params (7e5d108) - Parse resulting type of Promise as well (1130f7d)
- Rename
wrap(wrappingDataWithoutCopy)
(191ec22)