Awesome
NOTE: These sdk and samples only for the Agora Video 4.x APIs. For examples using previous releases please see the following branches:
Agora RTC SDK for Electron
<div align="left"> <a href="https://github.com/AgoraIO-Extensions/Electron-SDK"><img src="https://img.shields.io/badge/Platform-macOS--x86--64%20%7C%20macOS--arm64%20%7C%20win--32%20%7C%20win--64-blue?logo=Electron&labelColor=fff" alt="Platform"/></a> <a href="https://www.npmjs.com/package/agora-electron-sdk"><img alt="npm" src="https://img.shields.io/npm/v/agora-electron-sdk?color=blue&style=flat-square&logo=npm"></a> <a href="https://www.npmjs.com/package/agora-electron-sdk"><img alt="npm" src="https://img.shields.io/npm/dm/agora-electron-sdk?color=blue&style=flat-square&logo=npm"></a> <a href="./LICENSE"><img src="https://img.shields.io/github/license/agoraio-extensions/electron-sdk?color=blue&style=flat-square" alt="License"/></a> <a href="https://github.com/AgoraIO-Extensions/Electron-SDK/issues"><img src="https://flat.badgen.net/github/label-issues/AgoraIO-Extensions/Electron-SDK/help%20wanted/open" alt="License"/></a> </div>✨ Features
- 📦 Newly designed middle-tier API and Native C++ SDK.
- 🛡 Written in TypeScript with predictable static types.
🖥 Environment Support
- 🌈 Support macOS x86-64 and arm64 (Electron 11+)
- ⚙️ Support Windows ia32 and x64
- Electron: 4.x ~ latest
📦 Install
In newest version you can define installation configuration in package.json (or .npmrc, while package.json has a higher priority), usually you can just provide "prebuilt", and "arch".
// package.json
{
...
"agora_electron": {
"prebuilt": true,
"arch": "x64"
}
...
}
// .npmrc
agora_electron_sdk_pre_built=true // defalut value is true
agora_electron_sdk_arch=x64 // only support windows:
Properties detail:
- prebuilt whether to automatically download prebuilt NodeJS C++ Addon or build locally(which need to provide development env)
- arch: If not set, the script will automatically choose the arch. only support windows
- platform darwin or win32
## Automatic platform and architecture selection
npm install agora-electron-sdk
or
## or select 32 bit architecture on Windows
npm install --agora_electron_sdk_arch=ia32
## or select 64 bit architecture on Windows
npm install --agora_electron_sdk_arch=x64
🔨 Usage
import createAgoraRtcEngine from "agora-electron-sdk";
const rtcEngine = createAgoraRtcEngine();
rtcEngine.initialize({appId: "<your agora app id>"});
When using without electron-webpack
When using directly within a web electron project with custom webpack configuration, you may see errors when compiling.
It's because you have not properly configured loader for node addon. A convenient way to skip the compile process is to
set externals
property of your webpack config to {"agora-electron-sdk": "commonjs2 agora-electron-sdk"}
🔗 Links
-
Document - Official document
-
Demo - A quick start demo based on React and this repo
-
Changelog - Attention to newest information
-
Release Notes - Attention to newest information
⌨️ Development
Build From Source Code
You will need to build Agora RTC Electron SDK from source if you want to work on a new feature/bug fix, try out the latest features which are not released yet, or maintain your own fork with patches that cannot be merged to the core.
Prerequisites
Windows
- Python 2.7
- Visual Studio Code C++ Desktop Develop Framework
MacOS
- Python 2.7
- XCode
Clone locally:
$ git clone git@github.com:AgoraIO-Extensions/Electron-SDK.git
$ cd Electron-SDK
$ npm install #or yarn
# build macOS
$ npm install --agora_electron_sdk_pre_built=false
# build 32 bit architecture on Windows
$ npm install --agora_electron_sdk_pre_built=false --agora_electron_sdk_arch=ia32
# build 64 bit architecture on Windows
$ npm install --agora_electron_sdk_pre_built=false --agora_electron_sdk_arch=x64
🤝 Contributing
Read our contributing guide and let's build a better antd together. :)
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request