OpenIMSDK: Universal In-App Communication Solution for All Platforms
Published: 2024-01-17 03:44:03

From the day **OpenIM** was founded, we have always believed in "open source" as the core driving force. This not only reflects the internet's ideals of freedom, equality, and sharing but also addresses global data security challenges.

Issues such as data breaches, ransomware, and privacy invasions constantly remind us of the importance of security. Therefore, we offer a cost-effective and secure IM service to meet the data protection needs of enterprises.



## OpenIMSDK

With this SDK, you can add instant messaging capabilities to your application. By connecting to a self-hosted **OpenIMServer** server, you can easily integrate instant messaging functions into your app with just a few lines of code.

The core functionality of OpenIMSDK is implemented based on **[open-im-sdk-core](https://github.com/openimsdk/openim-sdk-core)**. Here are its details on different platforms:

### iOS Integration[](https://docs.openim.io/sdks/introduction#ios-integration)

- **Tool**: gomobile
- **Output File**: XCFramework
- **Interaction**: iOS interacts with the SDK through JSON
- **API**: The SDK offers a re-wrapped API for easier integration
- **Data Storage**: iOS utilizes the SQLite layer provided internally by the SDK

### Android Integration[](https://docs.openim.io/sdks/introduction#android-integration)

- **Tool**: gomobile
- **Output File**: AAR
- **Interaction**: Android interacts with the SDK through JSON
- **API**: The SDK offers a re-wrapped API for easier integration
- **Data Storage**: Android utilizes the SQLite layer provided internally by the SDK

### Web Integration[](https://docs.openim.io/sdks/introduction#web-integration)

- **Language**: Go
- **Features**: Uses Go's WebAssembly support to compile into wasm
- **Interaction**: Web pages interact with the SDK via JSON
- **API**: The SDK offers a re-wrapped API for easier integration
- **Data Storage**: JavaScript employs [sql.js](https://sql.js.org/) to virtualize SQLite and store it in IndexedDB to handle SQL logic

## Client SDK and Demos[](https://docs.openim.io/sdks/introduction#client-sdk-and-demos)

| Platform/Language | SDK Resource Link                                            | SDK Description                                        | Demo Resource Link                                           | Description       |
| ----------------- | ------------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------------ | ----------------- |
| **Golang**        | [open-im-sdk-core](https://github.com/openimsdk/open-im-sdk-core) | Golang version SDK, implemented with Gomobile/wasm/cgo |                                                              |                   |
| **iOS**           | [open-im-sdk-ios](https://github.com/openimsdk/open-im-sdk-ios) | iOS version SDK                                        | [open-im-ios-demo](https://github.com/openimsdk/open-im-ios-demo) | iOS Demo          |
| **Android**       | [open-im-sdk-android](https://github.com/openimsdk/open-im-sdk-android) | Android version SDK                                    | [open-im-android-demo](https://github.com/openimsdk/open-im-android-demo) | Android Demo      |
| **Flutter**       | [open-im-sdk-flutter](https://github.com/openimsdk/open-im-sdk-flutter) | Flutter version SDK                                    | [open-im-flutter-demo](https://github.com/openimsdk/open-im-flutter-demo) | Flutter Demo      |
| **uni-app**       | [open-im-sdk-uniapp](https://github.com/openimsdk/open-im-sdk-uniapp) | uni-app version SDK                                    | [open-im-uniapp-demo](https://github.com/openimsdk/open-im-uniapp-demo) | uni-app Demo      |
| **JS SDK**        | [open-im-sdk-web-wasm](https://github.com/openimsdk/open-im-sdk-web-wasm) | JS SDK version                                         | [open-im-pc-web-demo](https://github.com/openimsdk/openim-electron-demo) | Electron Demo     |
| **React Native**  | [open-im-sdk-reactnative](https://github.com/openimsdk/open-im-sdk-reactnative) | React Native SDK                                       | [open-im-reactnative-demo](https://github.com/openimsdk/openim-reactnative-demo) | React Native Demo |