Skip to content

Conversation

@NorbertKlockiewicz
Copy link
Contributor

Description

Introduces a breaking change?

  • Yes
  • No

Type of change

  • Bug fix (change which fixes an issue)
  • New feature (change which adds functionality)
  • Documentation update (improves or adds clarity to existing documentation)
  • Other (chores, tests, code style improvements etc.)

Tested on

  • iOS
  • Android

Testing instructions

Screenshots

Related issues

Checklist

  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have updated the documentation accordingly
  • My changes generate no new warnings

Additional notes

mkopcins and others added 6 commits October 1, 2025 15:37
Added singleton class GlobalThreadPool for single threadpool management
so that we don't have to spawn new threads for each async function and
instead we can delegate functions to the threadpool.

Also added pthreadpool and cpuinfo binaries for iOS to allow for XNNPack
threadpool configuration just like on Android

- [ ] Yes
- [x] No

- [ ] Bug fix (change which fixes an issue)
- [x] New feature (change which adds functionality)
- [ ] Documentation update (improves or adds clarity to existing
documentation)
- [ ] Other (chores, tests, code style improvements etc.)

- [x] iOS
- [x] Android

<!-- Provide step-by-step instructions on how to test your changes.
Include setup details if necessary. -->

<!-- Add screenshots here, if applicable -->

<!-- Link related issues here using #issue-number -->

- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have updated the documentation accordingly
- [ ] My changes generate no new warnings

<!-- Include any additional information, assumptions, or context that
reviewers might need to understand this PR. -->

---------

Co-authored-by: Mateusz Kopciński <[email protected]>
<!-- Provide a concise and descriptive summary of the changes
implemented in this PR. -->

- [ ] Yes
- [x] No

- [ ] Bug fix (change which fixes an issue)
- [ ] New feature (change which adds functionality)
- [ ] Documentation update (improves or adds clarity to existing
documentation)
- [x] Other (chores, tests, code style improvements etc.)

- [ ] iOS
- [x] Android

<!-- Provide step-by-step instructions on how to test your changes.
Include setup details if necessary. -->

<!-- Add screenshots here, if applicable -->

<!-- Link related issues here using #issue-number -->

- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have updated the documentation accordingly
- [ ] My changes generate no new warnings

<!-- Include any additional information, assumptions, or context that
reviewers might need to understand this PR. -->

Co-authored-by: Mateusz Kopciński <[email protected]>
## Description

Added batching feature to llms so that `onTokenCallback` is not
triggered on each token, but after every batch to reduce number of
rerenders.

### Introduces a breaking change?

- [ ] Yes
- [x] No

### Type of change

- [ ] Bug fix (change which fixes an issue)
- [x] New feature (change which adds functionality)
- [x] Documentation update (improves or adds clarity to existing
documentation)
- [ ] Other (chores, tests, code style improvements etc.)

### Tested on

- [x] iOS
- [x] Android

### Testing instructions

<!-- Provide step-by-step instructions on how to test your changes.
Include setup details if necessary. -->

### Screenshots

<!-- Add screenshots here, if applicable -->

### Related issues

<!-- Link related issues here using #issue-number -->

### Checklist

- [x] I have performed a self-review of my code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have updated the documentation accordingly
- [x] My changes generate no new warnings

### Additional notes

<!-- Include any additional information, assumptions, or context that
reviewers might need to understand this PR. -->

---------

Co-authored-by: Mateusz Kopciński <[email protected]>
This PR refactors the iOS executorch integration from Swift Package
Manager (SPM) to a prebuilt XCFramework approach, resolving dependency
conflicts and simplifying the build process.

1. XCFramework Integration
- Added ExecutorchLib.xcframework with support for both iOS device
(arm64) and simulator (arm64)
- Created dedicated Xcode project for building the framework
- Includes stub implementation of ETModel interface

2. Podspec Simplification
- Removed system frameworks dependencies (CoreML, Accelerate, Metal,
etc.) from podspec
- Removed sqlite3 dependency
- Removed force-load flags for executorch libraries from podspec
- Added vendored XCFramework reference

3. Build Configuration
- Updated ExecutorchLib project to reference binaries in
ios/libs/executorch
- Added build script for creating XCFramework

4. Package Management
- Updated .gitignore to exclude build output
- Updated package.json to include XCFramework in distribution
- Removed SPM package references from ExecutorchLib project

- Eliminates sqlite3 version conflicts
- Cleaner dependency management
- Better isolation of executorch dependencies

- [x] Yes
- [ ] No

- [x] Bug fix (change which fixes an issue)
- [ ] New feature (change which adds functionality)
- [ ] Documentation update (improves or adds clarity to existing
documentation)
- [ ] Other (chores, tests, code style improvements etc.)

- [x] iOS
- [ ] Android

<!-- Provide step-by-step instructions on how to test your changes.
Include setup details if necessary. -->

<!-- Add screenshots here, if applicable -->

<!-- Link related issues here using #issue-number -->

- [x] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have updated the documentation accordingly
- [x] My changes generate no new warnings

<!-- Include any additional information, assumptions, or context that
reviewers might need to understand this PR. -->
  Clean up repository structure and update library paths

  Summary:
- Remove generated iOS/Android app directories from all demo apps
(computer-vision, llm, speech-to-text, text-embeddings)
- Update .gitignore to exclude `apps/*/ios/ `and
`apps/*/android/`directories
- Move native library binaries from
`packages/react-native-executorch/ios/libs/` to
`packages/react-native-executorch/third-party/ios/libs`
- Update podspec to reference new library paths in third-party directory
  - Remove executorch git submodule

- [ ] Yes
- [x] No

- [ ] Bug fix (change which fixes an issue)
- [ ] New feature (change which adds functionality)
- [ ] Documentation update (improves or adds clarity to existing
documentation)
- [x] Other (chores, tests, code style improvements etc.)

- [x] iOS
- [x] Android

<!-- Provide step-by-step instructions on how to test your changes.
Include setup details if necessary. -->

<!-- Add screenshots here, if applicable -->

<!-- Link related issues here using #issue-number -->

- [x] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have updated the documentation accordingly
- [x] My changes generate no new warnings

<!-- Include any additional information, assumptions, or context that
reviewers might need to understand this PR. -->
@chmjkb chmjkb changed the title @nk/0.5.7 v0.5.7 Oct 1, 2025
@mkopcins mkopcins merged commit 86b2a59 into release/0.5 Oct 1, 2025
1 of 2 checks passed
@mkopcins mkopcins deleted the @nk/0.5.7 branch October 1, 2025 14:42
mkopcins added a commit that referenced this pull request Oct 15, 2025
## Description

<!-- Provide a concise and descriptive summary of the changes
implemented in this PR. -->

### Introduces a breaking change?

- [ ] Yes
- [ ] No

### Type of change

- [ ] Bug fix (change which fixes an issue)
- [ ] New feature (change which adds functionality)
- [ ] Documentation update (improves or adds clarity to existing
documentation)
- [ ] Other (chores, tests, code style improvements etc.)

### Tested on

- [ ] iOS
- [ ] Android

### Testing instructions

<!-- Provide step-by-step instructions on how to test your changes.
Include setup details if necessary. -->

### Screenshots

<!-- Add screenshots here, if applicable -->

### Related issues

<!-- Link related issues here using #issue-number -->

### Checklist

- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have updated the documentation accordingly
- [ ] My changes generate no new warnings

### Additional notes

<!-- Include any additional information, assumptions, or context that
reviewers might need to understand this PR. -->

---------

Co-authored-by: Mateusz Kopcinski <[email protected]>
Co-authored-by: Mateusz Kopciński <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants