Client SDK Platform Matrix
Platform matrix with interface sizes, availability and links to every guide and API reference.
ni-meet client SDKs cover 16 platforms. Every platform shares one product semantic and an API aligned with Agora 4.x. The class names, methods, parameters, overloads, events and error codes in the API reference are generated at build time from the public interface definitions, so the documentation stays in sync with the SDK package.
Choosing a platform
- Pick the platform that matches your stack; interface size and availability are listed under “Platforms and interface size” below.
- Follow a platform name into its “quickstart and feature guide”, which covers prerequisites, install commands, getting a token, the join flow, events, error handling and troubleshooting.
- When you need exact signatures, open the “API reference” for the same platform: the complete set of methods, overloads, properties, events and enums.
One integration model
Every platform follows the same model:
- One API: class names, method names, events and error codes are consistent across platforms, so moving between them is cheap.
- Identical semantics: connection state machine, event order, reconnect backoff, token renewal, statistics definitions, error mapping, device enumeration, role switching and data-channel semantics.
- Fails loudly, never silently: capabilities not supported in the current version return a clear error code instead of a fake success.
- API decoupled from the media implementation: application code depends only on the public API, not on the underlying media engine.
Token provider chain (identical on every platform)
Every platform accepts the same three token sources, which can be combined into a fallback chain:
| Form | Usage | When to use |
|---|---|---|
endpoint | Call your backend (which ultimately lands on POST /v1/tokens) | Most applications |
callback | Delegate to the host app / IM getRTCTokenInfo | Scenarios that already have an IM system |
static | Pre-issued token | Tests and offline demos |
Never ship customerSecret / appCertificate inside a client package: the client only receives { appId, rtcToken, rtcUid }. For the semantic details see AccessToken2 semantics.
Shared semantics checklist
Whichever platform you use, the following semantics are the same:
- Event order:
connection-state-change→user-joined→user-published→user-unpublished→user-left; - Disconnection: during
CONNECTION_STATE.RECONNECTINGmedia does not stop and tracks are not destroyed; only-112requires joining again; - Mute with
setEnabled(false), notsetMuted; - Role switching:
setClientRole('audience')stops local publishing automatically; - Statistics: the field definitions of
getRTCStats()match Analytics metrics.
What each platform can do
- Content Inspect, E2EE, channel media relay and client-side direct CDN push are not available in the current version; the corresponding methods return error code
-4(ERR_NOT_SUPPORTED). - Runtime capability on each platform follows the published SDK package; the interface definitions in the API reference do not imply that every interface is available at runtime.
- Cocos Creator: interface definitions and binding notes are provided; runtime capability follows the published SDK package.
Platforms and interface size
Interface sizes are computed at build time from the public interface definitions, to help you choose a platform. Availability follows the published SDK package.
| Platform | Language | Interface version | Interfaces/classes | Methods | Overloads | Enums | Error codes | Availability | Reference |
|---|---|---|---|---|---|---|---|---|---|
| Web(browser) | TypeScript | 4.24.9 | 63 | 157 | 168 | 0 | 96 | ✅ Generally available | API reference |
| Electron(desktop) | TypeScript | 4.6.2 | 137 | 578 | 578 | 146 | 48 | ✅ Generally available | API reference |
| Android | Kotlin | 4.7.0 | 143 | 654 | 709 | 52 | 6 | ✅ Generally available | API reference |
| iOS | Swift / Objective-C | 4.7.0 | 132 | 649 | 649 | 151 | 70 | ✅ Generally available | API reference |
| macOS | Swift / Objective-C | 4.7.0 | 121 | 612 | 612 | 144 | 70 | ✅ Generally available | API reference |
| Windows(C++) | C++ | 4.7.0 | 149 | 688 | 719 | 158 | 49 | ✅ Generally available | API reference |
| Flutter | Dart | 6.6.4 | 150 | 618 | 618 | 150 | 48 | ✅ Generally available | API reference |
| React Native | TypeScript / Java / Objective-C | 4.6.4 | 141 | 577 | 577 | 148 | 48 | ✅ Generally available | API reference |
| Unity(C#) | C# | 4.6.2 | 140 | 588 | 617 | 148 | 48 | ✅ Generally available | API reference |
| Unreal Engine(C++) | C++ | 4.5.1 | 140 | 603 | 629 | 145 | 46 | ✅ Generally available | API reference |
| Unreal Engine(Blueprint) | Blueprint / C++ | 4.5.1 | 90 | 458 | 458 | 103 | 6 | ✅ Generally available | API reference |
| Cocos Creator | TypeScript | 4.5.3 | 2 | 63 | 63 | 5 | 4 | ✅ Generally available | API reference |
| Mini program(WeChat) | TypeScript | 2.6.5 | 4 | 32 | 45 | 4 | 0 | ✅ Generally available | API reference |
| Cocos2d-x(C++ binding) | C++ | 4.7.0 | 2 | 43 | 48 | 0 | 0 | ✅ Generally available | API reference |
| C#(.NET) | C# | unknown | 121 | 519 | 525 | 144 | 46 | ✅ Generally available | API reference |
| HarmonyOS(ArkTS) | ArkTS | 4.6.3 | 88 | 317 | 317 | 86 | 40 | ✅ Generally available | API reference |
Total: 1623 interfaces/classes, 7156 methods (7332 overloads) and 1584 enums.
Next steps
- Choose a platform: open that platform’s “Quickstart and feature guide” for prerequisites, installation, token, joining, events and troubleshooting.
- Read the API: the same platform’s “API reference” lists every method overload, property, event and enum.
- Troubleshoot: see error codes for connection, authentication and media failures, and the FAQ.