/Electron-SDK

Electron wrapper around the Agora RTC SDKs for Windows/macOS

Primary LanguageTypeScriptMIT LicenseMIT

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

Platform npm npm License License

✨ 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
Chrome
macOS
Safari
Windows
Electron
Electron
x86 | arm64 ia32 | x64 4.0.0 ~ 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 PRs Welcome

Read our contributing guide and let's build a better antd together. :)

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature)
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request