Real-time communication over the internet is an amazing feat of modern engineering. The protocol that powers a majority of video calling platforms is WebRTC. In this episode Jeremy Lainé explains why he wrote a Python implementation of this protocol in the form of AIORTC. He also discusses how it works, how you can use it in your own projects, and what he has planned for the future.
This episode of Podcast.__init__ is brought to you by Clubhouse, the first project management platform for software development that brings everyone together so that teams can focus on what matters – creating products their customers love. Clubhouse provides the perfect balance of simplicity and structure for better cross-functional collaboration. Its fast, intuitive interface makes it easy for people on any team to focus-in on their work on a specific task or project, while also being able to “zoom out” to see how that work is contributing towards the bigger picture. With a simple API and robust set of integrations, Clubhouse also seamlessly integrates with the tools you use everyday, getting out of your way so that you can deliver quality software on time.
Listeners of Podcast.__init__ can sign up for two free months of Clubhouse by visiting pythonpodcast.com/clubhouse.
Do you want to try out some of the tools and applications that you heard about on Podcast.__init__? Do you have a side project that you want to share with the world? Check out Linode at linode.com/podcastinit or use the code podcastinit2020 and get a $20 credit to try out their fast and reliable Linux virtual servers. They’ve got lightning fast networking and SSD servers with plenty of power and storage to run whatever you want to experiment on.
- Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
- When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so check out Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute.
- And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial.
- Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected])
- To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media.
- Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
- Your host as usual is Tobias Macey and today I’m interviewing Jeremy Lainé about AIORTC, an asynchronous implementation of the WebRTC and ObjectRTC protocols in Python
- How did you get introduced to Python?
- Can you start by explaining what the WebRTC and ObjectRTC protocols are?
- What are some of the main use cases for these protocols?
- What is AIORTC and what was your motivation for creating it?
- How does it compare to other implementations of the RTC protocols?
- Why do you think there haven’t been any other Python implementations?
- What are some of the benefits of having a Python implementation of the RTC protocol?
- How is AIORTC implemented?
- What have been some of the most difficult or challenging aspects of implementing a WebRTC compliant library?
- What are some of the most interesting or useful lessons that you have learned in the process?
- What is involved in building an application on top of AIORTC?
- What would be required to integrate AIORTC into an existing application built with something such as Flask or Django?
- What are some of the most interesting uses of AIORTC that you have seen?
- What are some of the projects that you would like to build with AIORTC?
- What are some cases where it would make more sense to use a different library or framework for your WebRTC projects?
- What are your plans for the future of AIORTC?
Keep In Touch
- Electrical Engineering
- STUN (Session Traversal Utilities for NAT)
- TURN (Traversal Using Relays around NAT)
- ICE (Internet Connectivity Establishment)
- TLS (Transport Layer Security)
- RTP (Real-time Transport Protocol)
- Edge Detection
- Raspberry Pi
- Datagram Transport Security
- Augmented Reality