Skip to content

Compatibility and supported platforms

SDK v1.0.0
PlatformMinimum runtimeDistributed targetsPrimary wrapper
AndroidAPI 23, Java 11 bytecodearm64-v8a, armeabi-v7a, x86, x86_64Kotlin / Java AAR
iOSiOS 13, Swift tools 5.9XCFramework supplied by onboardingSwift package
Node.jsNode.js 20linux-x64, win32-x64ESM @p2psdk/node
ElectronElectron 28, Node.js 20Linux x64, Windows x64Main-process helper
Windows.NET 8, Windows x64win-x64C# and optional WPF helper
Linux nativeTarget-dependentNormally x86_64 GNU/LinuxStable C ABI 1
  • 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.

  • 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 1 as the only supported native ABI for this release.
  • Re-test consent, lifecycle, revoke, and background behavior after OS or host-runtime upgrades.

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.