Supported matrix
Section titled “Supported matrix”| Platform | Minimum runtime | Distributed targets | Primary wrapper |
|---|---|---|---|
| Android | API 23, Java 11 bytecode | arm64-v8a, armeabi-v7a, x86, x86_64 | Kotlin / Java AAR |
| iOS | iOS 13, Swift tools 5.9 | XCFramework supplied by onboarding | Swift package |
| Node.js | Node.js 20 | linux-x64, win32-x64 | ESM @p2psdk/node |
| Electron | Electron 28, Node.js 20 | Linux x64, Windows x64 | Main-process helper |
| Windows | .NET 8, Windows x64 | win-x64 | C# and optional WPF helper |
| Linux native | Target-dependent | Normally x86_64 GNU/Linux | Stable C ABI 1 |
Not currently supported
Section titled “Not currently supported”- macOS desktop applications.
- Unity packages or a Unity-specific lifecycle wrapper.
- React Native, Flutter, or other cross-platform mobile bridges.
- Browser-only applications or Electron renderer-process integration.
- Node.js on macOS, Linux ARM, or Windows ARM.
- Android below API 23 and iOS below version 13.
Do not adapt a nearby wrapper for an unsupported platform without an explicit engineering review. Native handles, consent ownership, callbacks, identity persistence, and background rules differ between hosts.
Compatibility rules
Section titled “Compatibility rules”- Pin package version
1.0.0; do not use floating or wildcard versions. - Package the native binary shipped with that exact wrapper release.
- Preserve the expected architecture and runtime asset directory.
- Treat ABI major
1as the only supported native ABI for this release. - Re-test consent, lifecycle, revoke, and background behavior after OS or host-runtime upgrades.
Existing networking components
Section titled “Existing networking components”VPNs, proxy SDKs, traffic filters, custom DNS stacks, and other bandwidth-sharing components may conflict with the same permissions or idle capacity. Declare them during onboarding and test coexistence before release.