Repository navigation
Conversation
Deploying react-native-ecr17-protocol with
|
| Latest commit: |
a825f73
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://16cee7d0.react-native-ecr17-protocol.pages.dev |
| Branch Preview URL: | https://feat-ecr17-windows-nitro-hos.react-native-ecr17-protocol.pages.dev |
…ative-nitro-windows)
The package no longer ships its own Windows project. Nitro must exist once per
app, so the app adds @padosoft/react-native-nitro-windows, which installs Nitro and
compiles the Windows C++ each package declares in package.json:
- package.json "nitroWindows": the binding (HybridEcr17Client, the adapter, the Windows
transport), nitrogen's specs, the registration function and the Kit
(@padosoft/ecr17-kit, whose nativeKit.windows lists the core and WinsockTransport).
- windows/Ecr17Windows.{hpp,cpp}: registerEcr17HybridObjects(), the job of the old
Ecr17Module; the old DLL project, header shims, platform hooks and windows-autolink.js
are gone (the host has them).
- WinsockTransport links ws2_32 from its source, since the host links nothing extra.
- example-windows depends on the host (not published yet: linked from
../../react-native-support) and its autolinked files and solution point at it.
Verified: the host's module collector, run on macOS against a simulated app, collects
the package and the Kit and generates the registration. Not verified: the Windows
build and the app (no Windows toolchain here).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
47PADO47
force-pushed
the
feat/ecr17-windows-nitro-host
branch
from
October 5, 2026 17:18
746a874 to
a825f73
Compare
47PADO47
added this pull request to stack #27
October 5, 2026 19:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
React Native Windows now goes through the shared Nitro host,
@padosoft/react-native-nitro-windows. It replaces this package's own Windows DLL (windows/Ecr17, which installed Nitro itself). The host's install, header-shim and platform code started from this repo's #23.Why: Nitro must exist once per app. With one DLL per package, two Nitro packages in the same Windows app would each provide
NitroModulesand their own copy of Nitro's registry.What changes
package.json→nitroWindows: the binding's C++ (HybridEcr17Client, the adapter, the Windows transport), nitrogen's specs,registerEcr17HybridObjects(), andkits: ["@padosoft/ecr17-kit"]. The Kit declares its ownnativeKit.windowssources (the core andWinsockTransport), and the host compiles each Kit once.windows/Ecr17Windows.{hpp,cpp}: the registration function, i.e. the job of the oldEcr17Module.Ecr17.sln, the props and NuGet files,scripts/windows-nitro-shims.mjs, the platform hooks, andwindows-autolink.js.react-native.config.js:windows: null.WinsockTransport.cpp: linksws2_32with#pragma comment, because the host links nothing extra.example-windows:react-native.config.jsuses the host'swindowsAppDependencies();AutolinkedNativeModules.g.*and the.slnpoint atNitroWindows.vcxproj. I edited these by hand to match whatautolink-windowsgenerates, using the host's GUID and WinRT namespace. Re-runningnpx react-native autolink-windowsshould give the same result.example-windowslinks it from a react-native-support checkout next to this repo:Until padosoft/react-native-support#115 merges, that checkout needs the
feat/nitro-windows-hostbranch. Once the host is published, switch to a version range. The READMEs and docs-site say this where they mention the host.Changeset
Minor. Windows support (#23) was never released, so replacing
windows-autolinkwith the host's helper breaks no published API.Verification
collect-modules.mjs), run on macOS against a simulated app with these manifests, produces:WinsockTransport);registerNitroWindowsModules()callingmargelo::nitro::ecr17::registerEcr17HybridObjects().cmake -S kit -B build-win && cmake --build build-win --config Release && ctest --test-dir build-win -C Release --output-on-failurecd example-windows && npm install && npx react-native run-windows --arch x64(with react-native-support cloned next to this repo)🤖 Generated with Claude Code