/pexip-swift-sdk

Pexip Swift SDK (iOS, macOS)

Primary LanguageSwiftApache License 2.0Apache-2.0

Pexip Swift SDK for iOS and macOS

Swift Platforms CocoaPods Compatible Swift Package Manager

Pexip Swift SDK is a collection of frameworks for self hosted Pexip Infinity installations that enables customers to build bespoke applications for Apple platforms or add Pexip to existing mobile or desktop experiences and workflows.

Features

  • Built upon the Pexip Client REST API for Infinity
  • Uses media signaling with WebRTC
  • Granulated into multiple libraries in order to be flexible and future proof. Pexip might provide other media signaling technologies in the future, or Infinity might be interchanged with the next generation APIs from Pexip at some point.

Products

  • PexipInfinityClient - a fluent client for Pexip Infinity REST API v2, conference controls, conference events, media signaling and token refreshing.
  • PexipRTC - Pexip WebRTC-based media stack for sending and receiving video streams
  • PexipMedia - core components for working with audio and video
  • PexipVideoFilters - a set of built-in video filters ready to use in your video conferencing app (background blur, background replacement, etc)
  • PexipScreenCapture - high level APIs for screen capture on iOS and macOS
  • PexipCore - extensions, utilities and shared components
  • WebRTC - WebRTC binaries for Apple platforms

Requirements

  • iOS 13.0+
  • macOS 10.15+
  • Swift 5.5 with structured concurrency support
  • Xcode 13
  • Pexip Infinity v29 and higher

⚠️ The project doesn't compile on Xcode 14.3 because of incorrect availability attributes CGDisplayStream.h file (introduced: is 13.0 instead of 10.8). Let's hope it's fixed in future Xcode versions.

Installation

Swift Package Manager

To add a package dependency to your Xcode project, select File > Add Packages and enter https://github.com/pexip/pexip-swift-sdk as a repository URL.

You can also add the following dependency to your Package.swift file:

import PackageDescription

let package = Package(
    name: "MyLibrary",
    platforms: [
        .iOS(.v13),
        .macOS(.v10_15)
    ],
    dependencies: [
        .package(url: "https://github.com/pexip/pexip-swift-sdk", from: "0.1.0")
    ],
    targets: [
        .target(
            name: "MyLibrary",
            dependencies: [
                .product(name: "PexipInfinityClient", package: "pexip-swift-sdk"),
                .product(name: "PexipRTC", package: "pexip-swift-sdk"),
                // ...
            ],
        ),
    ]
)

CocoaPods

source 'https://github.com/pexip/pexip-pod-specs.git'

pod 'PexipInfinityClient'
pod 'PexipRTC'

Manually

  • Download the archives from the GitHub releases
  • Add the xcframeworks as embedded frameworks to your target in Xcode

Examples

Development

  • Download and install the latest version of Xcode.
  • Open Xcode and install additional tools.
  • Install SwiftLint brew install swiftlint
  • Download the source code git clone git@github.com:pexip/pexip-swift-sdk.git
  • Review and add custom Git hooks git config core.hooksPath .githooks
  • Open the Package.swift with Xcode or run open Package.swift from the command line.
  • Build "Cmd+B"
  • Test "Cmd+U"

License

Pexip Swift SDK is released under the Apache Software License, version 2.0. See LICENSE for details.