Skip to main content

An implementation of WebRTC and ORTC

Project description

aiortc License Version Python versions Tests Coverage Documentation

This is a fork of the aiortc project with slight modification neeeded in the crosslab project

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

crosslab_aiortc-1.9.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

crosslab_aiortc-1.9.0-pp310-pypy310_pp73-win_amd64.whl (1.0 MB view details)

Uploaded PyPy Windows x86-64

crosslab_aiortc-1.9.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

crosslab_aiortc-1.9.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl (889.1 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

crosslab_aiortc-1.9.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl (1.2 MB view details)

Uploaded PyPy macOS 10.15+ x86-64

crosslab_aiortc-1.9.0-pp39-pypy39_pp73-win_amd64.whl (1.0 MB view details)

Uploaded PyPy Windows x86-64

crosslab_aiortc-1.9.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

crosslab_aiortc-1.9.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

crosslab_aiortc-1.9.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl (889.1 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

crosslab_aiortc-1.9.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl (1.2 MB view details)

Uploaded PyPy macOS 10.15+ x86-64

crosslab_aiortc-1.9.0-pp38-pypy38_pp73-win_amd64.whl (1.0 MB view details)

Uploaded PyPy Windows x86-64

crosslab_aiortc-1.9.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

crosslab_aiortc-1.9.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

crosslab_aiortc-1.9.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl (889.1 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

crosslab_aiortc-1.9.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

crosslab_aiortc-1.9.0-cp38-abi3-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.8+ Windows x86-64

crosslab_aiortc-1.9.0-cp38-abi3-win32.whl (922.6 kB view details)

Uploaded CPython 3.8+ Windows x86

crosslab_aiortc-1.9.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

crosslab_aiortc-1.9.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

crosslab_aiortc-1.9.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

crosslab_aiortc-1.9.0-cp38-abi3-macosx_11_0_arm64.whl (896.3 kB view details)

Uploaded CPython 3.8+ macOS 11.0+ ARM64

crosslab_aiortc-1.9.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 crosslab_aiortc-1.9.0.tar.gz.

File metadata

  • Download URL: crosslab_aiortc-1.9.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.2

File hashes

Hashes for crosslab_aiortc-1.9.0.tar.gz
Algorithm Hash digest
SHA256 08b80a70611a3916ac1136ad73863feb66757d650ff2fa5b90c3f350faecccac
MD5 24a8f6bdae95417a1e67b777a0f9cea6
BLAKE2b-256 f54882f8a89dc00cf983ca231cd34745facba6472f94d72a3d1b7ddd0f4a0d3e

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 87a5ac5d3f3db062c4cb43c836c5a4c2f0bbc46504b2c5cbc14743784571f7f5
MD5 807f9f02d61904e4b02d9f39979dbdeb
BLAKE2b-256 fee503d2cd4a8d014555e890b8b9aeb4a1bdf17d0a03a683d1ee7ac0e1caf8a6

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 60de336b4c6079ff9efbb91c90a6b7f0888a0c73b8b8478e8b920525aa4578a4
MD5 90d4f5e42706f67af6426dd8d860ad99
BLAKE2b-256 d3762666dbec5beca38f5d2f0bef8f596607782c7b9d936b9defd535c3908108

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1b80a3d03f678a6ae3a0e36b0ef715000ff277f8ebf62836e8086912a5d0397d
MD5 256c507d2f28bcd55fbd125852ee78aa
BLAKE2b-256 0160dac9b7298b4525fda0cd12f619beb0362bc867786a93e070b81f3f479e00

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9260c410e36c488942495241d1bde2564361bd3034a1111e3b16d8baa63f1e9c
MD5 48fe9cb42f6fffd49fa878c7317b9463
BLAKE2b-256 f7287abd5b65941e9d65fe949b73edc2c19f7405d7d9ea72df37968d11d77538

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2a765c5f9cacc8469d334bb2e5bd7802cb3ef5c20bf5ebc51a4a561c020bb27b
MD5 b382a0d2fd6652f4c5bf895bb77f5b1e
BLAKE2b-256 e39839b7786cf58e30d9c68631fe90168454c85d56135fe991ee8d173e5e6c32

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 69402726d18fd51177f4819b474dbe469cd9454fe88026ff751b90fbe8867032
MD5 7ce16a4fb144f5b35d1aa113b782223b
BLAKE2b-256 9335cab696203ea3f15f4693f0c37cec95049556b457c4d51e2cc4002e2cdfaa

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 0a699ed67bcc9879bb1af16f68bee1624e01141aad13e51ddf493eed11010e2c
MD5 ae28a0c8c9d8608c1156e487076a5165
BLAKE2b-256 921d163000d08ecfbef9b9a7827c5336fb795667469513b58466fcfc5a805c7a

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bac1cc129173640175ad8800b9207a99900d3ad0f4ad3018cd52e1eeb4e0696b
MD5 82f5335fc8db663e0c813da941a4cede
BLAKE2b-256 42ec309bfc7ead24a492a3d37970155f63c0b62617afaa6c8f0e4426ba323280

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2c39697385781d2b892db622bfa4b7f10e9b0801fd7d97089115440e3d231fc4
MD5 dbdcf61eda5e989079dad4e50a62977d
BLAKE2b-256 91d9e2a84814cfdf077b3bff37d78f88348757e310a2d8d5567d5e339334f57a

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d369c0deb21c766c737e3d7660801d7bbfd473bec326ab77a1136de98fb7a872
MD5 0a01c97e596d99ff2b647c01ff53586d
BLAKE2b-256 1fe225b520fce6abac0d6d320f500ba2029be2e8ebc6923c3f922039ef29d363

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1f67484b4a454662bf753ea59b7c1423c8adb5e91db105f0986c9050004dcc29
MD5 5e9d365c1fe82b3a07f0ef6757073da3
BLAKE2b-256 d3134b7e4bc1085dad4d0f6b3ece9e7575c8a957e7c396b32592d626e7ce20ee

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 768b6b17d04a2dbc82fa21594d5a09d48482ac5c492473c0291eec4f132346a8
MD5 adecc785365eb9569ceed4061a54b890
BLAKE2b-256 07f6d50a7c9f17411624ae0e26d7be0acbb8e3fbb705db2539834cf4c6231159

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 d812ef22373ba4d02bd6ea0cf842b70a1f49c49c3c99c6a8236c24257c1460cc
MD5 da2eca3fe229bdd869fafd301823a56d
BLAKE2b-256 f597cdce71aa55af852c41ada9398cea22da2cc1316c5ce1de92a20ddb05bbf8

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a450b9df2355838c31ee3af8d28b3e5a21505b32a00f3b6b3ebb68e83e583213
MD5 1eb9a8daee46f1b4b2fa385b62e157a5
BLAKE2b-256 86f7bc8cad364e75a9e37c952e9b0aaa8a521d9659a95b1f686600dbfb1a2b4b

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2fefb3ae4d190623f99ce2b0106b00252c5e0627b7edc96d8fbedb54ed1e5c5d
MD5 40e6b868b2a64c9d248a46db7edbeb8d
BLAKE2b-256 f9a09f261cac622153ee0093f7dd6b56c1c4b2bedd1db8b8e2b50e90356323c0

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2730c0a585d4c83b5105362c008168d7bf5822273fa30421106c4f3d88d3ca9d
MD5 14db62101d484efe70e133a1f8fffc8b
BLAKE2b-256 828d5033a33a8a6b331d0332bca44df0a8252fd7c4825904bd40884ca69632b9

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 14c5db78af0d1f833e06c2871e3ee70ee1ceb5f18c1d748167d5016efac04b33
MD5 5453858f8c197df0577ce19ab11a3ed2
BLAKE2b-256 acd2f07ff954550d346be0b533116ced9ca585831eb5757e756f247b5c75ef8e

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 49b82dfd005ed433b93dbfe7546c676878fb10e4f2da8c8c9b06dfb610600cda
MD5 19968096145ec175caa082d8f8d7d89b
BLAKE2b-256 ecd7957578c871985ef593f2ed59f8e87a683127a2d7a5a49dce7a75d541796b

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 94b400a5029f241422e3cf35cc23fe2933c61adc2ec97cc4935c873e0233c9c9
MD5 022b5c55543050303501f6d4ccec7e60
BLAKE2b-256 50acb8957069b0688f71222237f193bd3ea00f2e73db1588af24ba22dc061656

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-cp38-abi3-win32.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 2553bf180110a1c0efd0097ea15cc392a3df166e48d6f6f06d8f4e0afda82741
MD5 65a64e6661c1e4cfa996ef0585306165
BLAKE2b-256 90923a3093eccfdb246d345a6675c27f2a6186029edb56109f2793e441784750

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 98c9f1931d9229fc6c3d06c7ffbb82614b2f1fa97fb69ebf7b4e4591602b00cf
MD5 f44b58061ac52fcef999160d8615ea27
BLAKE2b-256 f32e95111ceadff3fa0135a2ebfc45db0ba3de100cdb78f856db74a145cd8f9e

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8ef77d59ba1450c78172b04cdb9670d91c8a282a63127a0069f622e1b216d5c1
MD5 dccf53ed0319dfe6a47b3db54b8af95d
BLAKE2b-256 ddc80f13da950bd084af837d327bf87b0a12abc7dfd572332b1ad2e02638b90e

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c3665c27574321a7a2aac223378ac71fb7bb963f9cca64410e908f1cd82ec455
MD5 eb7cfec3f63a3f5a672f13c68d806f70
BLAKE2b-256 e6af2fd216e0596b73be8c67a4c0bf60939bb23e2e7a266f5e22348973cd36b7

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 27f63224ac0c0bc1c6030713d02f6bef0fd6dcd08a097c736ac6e5ad39b1fc04
MD5 9cdeab47dc1ffec380ec3416ec14269a
BLAKE2b-256 89261fe1d7748d53903e168ae9bc1b410b55e1187cb46a803a24f39809d37796

See more details on using hashes here.

File details

Details for the file crosslab_aiortc-1.9.0-cp38-abi3-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for crosslab_aiortc-1.9.0-cp38-abi3-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 942de6d9cf04067520babf9233895cbe4ec3dec4f54d9abd686d0eb145f030cf
MD5 5ba99cfd73d8f558235c0977ac26e3a8
BLAKE2b-256 0697f4a9b448ce019ebe746f3007abbe456b1f78990e5c18b3b8abbbfb0b1ab9

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