Skip to main content

An implementation of WebRTC and ORTC

Project description

aiortc License Version Python versions Tests Coverage Documentation

What is aiortc?

aiortc is a library for Web Real-Time Communication (WebRTC) and Object Real-Time Communication (ORTC) in Python. It is built on top of asyncio, Python’s standard asynchronous I/O framework.

The API closely follows its Javascript counterpart while using pythonic constructs:

  • promises are replaced by coroutines

  • events are emitted using pyee.EventEmitter

To learn more about aiortc please read the documentation.

Why should I use aiortc?

The main WebRTC and ORTC implementations are either built into web browsers, or come in the form of native code. While they are extensively battle tested, their internals are complex and they do not provide Python bindings. Furthermore they are tightly coupled to a media stack, making it hard to plug in audio or video processing algorithms.

In contrast, the aiortc implementation is fairly simple and readable. As such it is a good starting point for programmers wishing to understand how WebRTC works or tinker with its internals. It is also easy to create innovative products by leveraging the extensive modules available in the Python ecosystem. For instance you can build a full server handling both signaling and data channels or apply computer vision algorithms to video frames using OpenCV.

Furthermore, a lot of effort has gone into writing an extensive test suite for the aiortc code to ensure best-in-class code quality.

Implementation status

aiortc allows you to exchange audio, video and data channels and interoperability is regularly tested against both Chrome and Firefox. Here are some of its features:

  • SDP generation / parsing

  • Interactive Connectivity Establishment, with half-trickle and mDNS support

  • DTLS key and certificate generation

  • DTLS handshake, encryption / decryption (for SCTP)

  • SRTP keying, encryption and decryption for RTP and RTCP

  • Pure Python SCTP implementation

  • Data Channels

  • Sending and receiving audio (Opus / PCMU / PCMA)

  • Sending and receiving video (VP8 / H.264)

  • Bundling audio / video / data channels

  • RTCP reports, including NACK / PLI to recover from packet loss

Installing

The easiest way to install aiortc is to run:

pip install aiortc

Building from source

If there are no wheels for your system or if you wish to build aiortc from source you will need a couple of libraries installed on your system:

  • Opus for audio encoding / decoding

  • LibVPX for video encoding / decoding

Linux

On Debian/Ubuntu run:

apt install libopus-dev libvpx-dev

OS X

On OS X run:

brew install opus libvpx

License

aiortc is released under the BSD license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiortc-1.7.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

aiortc-1.7.0-pp310-pypy310_pp73-win_amd64.whl (1.0 MB view details)

Uploaded PyPy Windows x86-64

aiortc-1.7.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

aiortc-1.7.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

aiortc-1.7.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

aiortc-1.7.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

aiortc-1.7.0-pp39-pypy39_pp73-win_amd64.whl (1.0 MB view details)

Uploaded PyPy Windows x86-64

aiortc-1.7.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

aiortc-1.7.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

aiortc-1.7.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

aiortc-1.7.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

aiortc-1.7.0-pp38-pypy38_pp73-win_amd64.whl (1.0 MB view details)

Uploaded PyPy Windows x86-64

aiortc-1.7.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

aiortc-1.7.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

aiortc-1.7.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

aiortc-1.7.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

aiortc-1.7.0-cp38-abi3-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.8+ Windows x86-64

aiortc-1.7.0-cp38-abi3-win32.whl (922.6 kB view details)

Uploaded CPython 3.8+ Windows x86

aiortc-1.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ x86-64

aiortc-1.7.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

aiortc-1.7.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

aiortc-1.7.0-cp38-abi3-macosx_11_0_arm64.whl (895.4 kB view details)

Uploaded CPython 3.8+ macOS 11.0+ ARM64

aiortc-1.7.0-cp38-abi3-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8+ macOS 10.9+ x86-64

File details

Details for the file aiortc-1.7.0.tar.gz.

File metadata

  • Download URL: aiortc-1.7.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for aiortc-1.7.0.tar.gz
Algorithm Hash digest
SHA256 4fd900797b419a9189443b7c95a2ce4bf5aa0d9542d8d19edfabf30aa5fbc296
MD5 3b8b5e53dc21cd9ac2dfb4bc14b8d360
BLAKE2b-256 35856716217e91790f08d382fcf48eea83ace2874732ab5872a649623ebcfd93

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 8fcf352df6fabad32fd337dc51b629060de80d06987a8544c3c842ecc04254f8
MD5 d98a8998ef15bad02c99ebbd14d42a44
BLAKE2b-256 6bdfc80e029adc8ca5c51eece7b5aaaf6acacf766f2c6d880c93cae336305875

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f77cc2d757d7c3c37c6157cce36fe13fc161c5cb5aea62759c8b0d3e6d7f45f9
MD5 58eafdc83ad5a519f642c14ed5e4eead
BLAKE2b-256 3682425810a32426cce39301989e3618f501150d4ea839be1a533768498079e9

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 35e1dce2697762841dd3cc5a6e23ef8a0d96207e3fd33b834b5a8686748f6143
MD5 5d66774f79521509075ddf7b3fcfc48c
BLAKE2b-256 b587e6932ca93c91b353ad5df4fe3061f2bb5b73c5fed2665709f24e126ee69e

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 80465daa66f89e4fd22b6afd3a6ae71ffd506343cf30025dbc36eb5453f95330
MD5 8570992f37ad2ddb7737007ebb083ca7
BLAKE2b-256 f852a15fc06b678ebf69c1840017cfd78381063b833f238c07c7385e63e5f2b7

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e7407d7065cbc649adf866927c007d84f94eeb3fcaa65f44eb94def8c2c5bbca
MD5 8818c4661b673b20790ca1288ae20c70
BLAKE2b-256 44eb06ebe1dfd74f0d4ea953a310d3046225df9697f3c84dca6f895f33e58408

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 0b7248716706c52e3bc1f21a89a1a9ca205e95a74c0b4aa4b2863d2162fd2552
MD5 df3f63c489761bd769b0f0469e44bf05
BLAKE2b-256 687b98161ba2ffaa46a4ae24cfdd7bd0d769b62bd57ef5809a68a088980d66cb

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 52e945b2ba536e4e78c106e6c923f73b1838bf0c35592d729ea9b3ba6791b108
MD5 1a5101e412951ffecb7997a5a1620cc4
BLAKE2b-256 f30fd622b04dcc43141b5498f9b2016b70120d3750bf3c7ff587542fed816d00

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 791f525577033572ee937853159cff2c63121d1e30d9c93df4ef3a4c94eec5ec
MD5 477ae06c2945457029e09603a09607b4
BLAKE2b-256 9cecb5cb64a3095d3197d51b95fc10c4537766f8a8f079f8bfd33f1569be138f

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 89a8aef4067c68ccbc97872d506b9b80d5ed39e0cc41a46d641b66c518e00240
MD5 44b45ae38d89b769093f2bc978808fcf
BLAKE2b-256 9c8bd967a61c796b591655e446f5c71e2687b3dd7bde9ef90138a6971630d473

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 573314501d4aa2ef5e8826abe7e675742c92d25908f5f6b48ea2f5fababdfb4b
MD5 d972005a8098af2c78d230d9fbe7414e
BLAKE2b-256 65d3e5a6b8fe03d82f279f5ccb85db0bd179f024a9c66bb4c9a536829f42fcbc

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 919b6edbc1e462cb00e313d44368798066c3ebe81525ec6fb6008e0cad572c97
MD5 db8188cecbc29e7491951ff721ca2024
BLAKE2b-256 d7f82bb7de3731a4046fa14c96589e9a5acf09b7e33aeac69050fd8c27486e2e

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4f21e0024c0c7b07fec87e1ffcc30b6dbd57d1b822324d9c0128731388a82f08
MD5 6ecb529de3938d9b50b091adfc08ab28
BLAKE2b-256 1dd01049b0dd29392747834581b4ac1878a839a1ad9153257b8abe63d4399ccc

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ec2d018bd01c7532188be5842e11de252a1346156880ff3387d4f879c9f163d2
MD5 7ee0778f59731fab1d089e3da492e2f7
BLAKE2b-256 dc7c643dff29b2ed209069ee154c6c9db13f04da67588aa2ec2f86ee3acae61f

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fd267c338bd6578b46fb8f664418f9a48ad5d1582895eb029b4c5087e105fc89
MD5 233efd65fbc19e9267ddf3905455004a
BLAKE2b-256 93d2503cc95e21ce2053a6536223227168da0f2641879e6dd2e4a52411c9d101

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5b1427673e3ef8889dbd1c4f05d3d2aa7895cbfdc985532d54892ad6f96fc08c
MD5 300ba6d46d8d106956444894285b8c5d
BLAKE2b-256 173a4d6490f3004af04c395ca34707ad0872114ed7b92593eaedb0077676a948

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: aiortc-1.7.0-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for aiortc-1.7.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e60f19f810a552690bf6e969429c624df39af2b5079ee0d95fb75d110b978e20
MD5 4fcd87a032f6622ec81f68bec5b3ddaf
BLAKE2b-256 c9ebb2c920d1fbdd25a9f116ec5ff2c070e795d63e4dcb9bb2e78fef5b67df64

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-cp38-abi3-win32.whl.

File metadata

  • Download URL: aiortc-1.7.0-cp38-abi3-win32.whl
  • Upload date:
  • Size: 922.6 kB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for aiortc-1.7.0-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 a63c4da5c4a9d96ef6e3948c1f4675e02b0b908605eff4cea8b5e2fa5a34da4e
MD5 2043598fb06f5c181bfb4791ac601634
BLAKE2b-256 521d90d2465efb01f81a9866352dd5c754402e7e092d2af3f0d966f4f26bae09

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 71c18762ebfeb239352705672e598c57f0e56e5c1b7955dba27651c801c56ea2
MD5 d40c7c7a04e8429af520eb18dea9e222
BLAKE2b-256 468a815f0d619a08b89c5505aced5e5f598d463b4cb21c091cf7fb9549084285

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c5323a347d02d53989e61944eead19e550d930afbb872dd0fb51b3d065aaa833
MD5 737dea92e8280635514bde4b99d3d4f1
BLAKE2b-256 f2f886d23644e87e22156a9446ec844b21a83a3db52900a7e67f562c359c3817

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 817526c2e429a1ef1226ca9cdb4ff3c5d03857eb31de0f5a00433dc4cb5569f3
MD5 f326a15938755b54ab91411c9a9478e1
BLAKE2b-256 961e3aa111508a82bbebfab65fda06c93dc68f7215f12dfa65d24f3a3d1df641

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 169abaaa0c11a1695942b3eeea9d9032ea4992c6e84958c1b31c6ba22fcf4b0e
MD5 ce523b0f1b9a33b5e2d80cd67c7c1271
BLAKE2b-256 525d628f937106e66f4b40f861c1167924ab45ec19063cf5bcceb2dc0740c8e9

See more details on using hashes here.

File details

Details for the file aiortc-1.7.0-cp38-abi3-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for aiortc-1.7.0-cp38-abi3-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 aba47eac61ee7fb7e89876f40e4132aa66a13ed2a730dff003342e57219f34c0
MD5 0b7e0dbe0fce76c228bfc2723cec5a1c
BLAKE2b-256 00f38b51c79e6296bd76b3154a0a977472f2416e5d806dc210604416e3548b0b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page