Skip to content

Release 0.1.0

Compare
Choose a tag to compare
@mrousavy mrousavy released this 01 Aug 22:35
· 762 commits to main since this release
8f125cc

0.1.0 (2024-08-01)

💨 Performance Improvements

  • Also cache getPropertyNames (eddad79)
  • Make all JSIConverter calls inline (b5d832c)
  • Pass function to Promise and JSIConverter as move (04f9e94)
  • Speed up Dispatcher get calls (a6b69b3)
  • Use contains instead of count (756cd90)
  • Use get (assert) instead of as for faster perf! (0da06a7)
  • Use hashing functions for literal types (ab08c97)

✨ Features

  • Add ArrayBuffer support (44608b8)
  • Add hashString with compile time length (1cc33e0)
  • Add kind (84ff92a)
  • Add logLevel and parse properly (74076e7)
  • Add memorySize to HybridObjects (47800ec)
  • Add name and equals methods to HybridObject (4262b79)
  • Add override prop (d524536)
  • Add saveToFile(path) (d784f1d)
  • Add fbjni, RN and Nitro as core libs (107bbe2)
  • Add Kotlin (e2636b7)
  • Add tuple support to JSIConverter (f96df1d)
  • Allow optional (c3d16ed)
  • Allow passing in path to script (f93b63e)
  • Also create Test obj on Android!! :))))) (23ecec0)
  • Also log total alive instances (5c50d02)
  • Always create C++ code (0e39f2a)
  • Always write trailing newline (b3dbb0f)
  • Android builds! (1a037c0)
  • Build C++ libs ourselves instead of CodeGen (e2cd332)
  • call into java (9c66382)
  • Convert structs to and from JSI (a7eb13a)
  • Create AnyMap (c043b61)
  • Create Data based ArrayBuffer for Swift (b310478)
  • Create ForeignArrayBuffer (cf2eb19)
  • Create getHybridPart to move this logic (eec426e)
  • Create JSICacheReference for safer cache access (3e0279a)
  • Create OwningLock to lock mutex (fc4eb15)
  • Create react-native-nitro-image (24167c3)
  • Create RuntimeError (23c4cbd)
  • Create fbjni C++ object (76bc9f1)
  • Create fibonacci for 80 (613f288)
  • Create files in nitrogen/generated (9e34873)
  • Create initializer and registry on Android (4115045)
  • Create Kotlin code! (c22acb6)
  • Create Kotlin structs (data classes) (952147a)
  • Don't expose header, fix cycle (ec2be05)
  • Drop the Swift stuff again (1380e3e)
  • Forward declare structs and enums as well :) (d97d0d3)
  • Generate NitroImage+autolinking.rb (b137a0f)
  • Generate all Swift result types in a single file (a071e17)
  • Generate CMake autolinking setup as well (e9dda33)
  • Generate gradle file as well (0eec2bd)
  • Generate Swift protocol BASE (9e14e67)
  • Generate to platform subfolders (7119d8f)
  • Group files by platform, to prettify logging (99ac21d)
  • Implement == for OwningReference (803c7bf)
  • Implement a bunch of Swift types (8673069)
  • Implement enum Java <-> C++ parsers (952730a)
  • Implement HybridTestObject (04f4fe0)
  • Implement Method, Parameter and Property for Kotlin (ff0c102)
  • Inform JS GC about memory pressure if it is a HybridObject (2e503ab)
  • It works! (f89a5f4)
  • Load C++ library from Java (717f466)
  • Log runtime thread ID (f6853f7)
  • Log when files changed! (560e333)
  • Make single required constructor for structs (83bd6f7)
  • Map roundtrip (JS -> C++) (18d509c)
  • Move Hash.hpp into core codebase (1186148)
  • Namespaces! (fb3317c)
  • Non-duplicate forward declarations (066469b)
  • Owning array buffer (9d301cc)
  • Parse nitro.json file with Zod (dd3e559)
  • Prettify a few edge cases in getFriendlyTypename() :) (a104481)
  • Properly check variant type at runtime (f0844b0)
  • Properly escape JS names (2a34f53)
  • Provide object and method name when throwing errors (1eda72a)
  • Put files into Android namespace directory (c9fcad7)
  • Remove duplicates from includes (95eef98)
  • Resolve JNI imports (7f1bfa3)
  • Rewrite NativeNitroModules to a bare (non-codegen'd) TurboModule to get Android to build (26743e4)
  • Set JS Context in Swift (8240a03)
  • Something... parse SwiftCxx (8899897)
  • Support constructor (ab15592)
  • Support Promise (0e118f0)
  • Support Record<K, V> (cf91908)
  • Support std::function (e004bed)
  • Support variant in JSIConverter (07204a1)
  • Support arrays (7dbc8ed)
  • Support enums (50b7dd6)
  • Support functions! (7c7c5ac)
  • Support generating variants (980ecda)
  • Support intersection unions (44ebf85)
  • Support JS -> C++ variant parsing (37fe1a8)
  • Support Record variant (6c1232a)
  • Support string callback (4f90447)
  • Support Tuple<...> in Nitrogen (c731f05)
  • Test returning same type (3e755c7)
  • Throw Error if native nitro modules cannot be found (f219e21)
  • Try load Nitro TurboModule on Android (428a176)
  • Try to cache jsi::Objects for HybridObjects (0c0de8c)
  • Try using Logger (e26832f)
  • Use CONFIG from NitroConfig (3be6545)
  • Use OwningLock<T> in function callbacks (45d5342)
  • Use Async API and file glob (70c5c6e)
  • Write files in parallel (393df26)

🐛 Bug Fixes

  • Add ImageSize again (093627e)
  • Add import (daa8c00)
  • Add required -Swift headers (d0e042c)
  • Allow virtual destructor (535905a)
  • Don't include android sources (10f598a)
  • Don't include C++ HybridObject size in memory size (it's already included) (565f613)
  • Fix = 0; generation (cbdf54d)
  • Fix toString() space (82925db)
  • Fix tsconfig I think (9bb91f9)
  • Fix all wrong names (95d8414)
  • Fix Android Example app setup (7eed717)
  • Fix const (37c2030)
  • Fix cyclic Swift build (152d643)
  • Fix dealloc crash by not making it optional (2bce625)
  • Fix deleting directory after every file lol (9685dfe)
  • Fix destructor never deleting weak ref due to < 0 (ba5d17e)
  • Fix dispatcher lambda not mutable on promise (2ee6e14)
  • Fix enum names (uppercase for C++/Kotlin, lowercase for Swift) (778c7ed)
  • Fix func passing (92bd1fc)
  • Fix imports (50507b6)
  • Fix includes and indents (58613bb)
  • Fix includes order (c0180f5)
  • Fix indentation (0459605)
  • Fix Java descriptors (2399c01)
  • Fix JS callbacks not using Dispatcher!!!!! (e6f84be)
  • Fix Logger (3fe9d78)
  • Fix missing namespace in fbjni bridge (2b14925)
  • Fix package.json includes (f05bcd7)
  • Fix parsing relative directory when executed from different pwd (c70f1df)
  • Fix podspec (7b9501f)
  • Fix ref counting being smaller than 0 (bb67b6a)
  • Fix relative imports by setting module to NodeNext (a6456ba)
  • Fix Spec rename (a51dd2e)
  • Fix struct parser (ae635f3)
  • Fix stupid fucking idiotic dumb error (8e4f784)
  • Fix TypeScript setup (b8eefd2)
  • Fix void comparison (fff6204)
  • Fix wrong language (c05be0e)
  • Forward-decl (51a5632)
  • Generate fbjni classes as well (b262434)
  • Generate types for each value (071d11c)
  • Hide Kotlin constructor (c5c495a)
  • Implement Image more (b3c1701)
  • Include referenced types (1d15772)
  • IT BUILDS! 🎉 (846ac29)
  • Kinda builds? (404b125)
  • Let codegen CMake build NitroImage (183c827)
  • lock _mutex when lock()ing or comparing OwningReference (ee41df2)
  • Make _mutex a unique ptr so it can be accessed from Swift (19d3e84)
  • Make ~HybridObject virtual (68c7c2b)
  • Make all headers public (7075d72)
  • Make it compile (but not yet link) (7aacc94)
  • Move into cxx namespace (c9e33f2)
  • Move to namespace margelo::nitro (7bc2767)
  • No need to wrap structs (f2c289c)
  • Ok we need to do it manually... (f789063)
  • Only expose some headers (4e1a258)
  • Only parse HybridObject (0d1f8e4)
  • Properly configure projects (+ kotlin) (4c71e3f)
  • Properly escape string variable names (41eb40b)
  • Properly forward-declare with namespace (52f2a9c)
  • Properly get memory size including own cache map size (a0c7caa)
  • Properly mark enums as final (8bd13f8)
  • Properly namespace HybridObjectType (6de2dab)
  • Publish proper files to npm (209a73f)
  • Remove ForeignArrayBuffer (cbfba72)
  • Remove unused createHybridObjectName (66d4710)
  • Rename nitro-codegen to nitrogen (2181cb5)
  • Rename to JHybridT (0ff5e11)
  • Run (0e1e5af)
  • Throw mutex on all pointer operations (705efdc)
  • Throw on single string literal (d2b0ded)
  • Try fixing runAsyncAwaitable (039f745)
  • Try strong typed (535c53e)
  • Try to make promise func JSIConverter (504b07d)
  • Unify error catching in createMethod (49ed078)
  • Update map copy (62bb220)
  • Use atomic_size_t to prevent race conditions in OwningReference (c66064a)
  • Use alias_ref (4b61f5b)
  • Use double again (6812c9b)
  • Use safer ts-morph APIs (3a89b26)
  • Use shared NitroDefines (786f2e9)