Стандартная библиотека asyncio это стандарт (начиная с Py3.4) для работы с асинхронным кодом. Но эта библиотека достаточно низкоуровневая, со своими проблемами, устаревшими подходами.
Чтобы исправить это, были созданы разные обертки и альтернативы с реализацией популярных инструментов и паттернов асинхронного программирования. Это такие библиотеки как:
- trio: улучшает корректность выполнения, не оставляя потерянных корутин при ошибках, то есть предлагает Structured Concurrency из коробки.
- curio: упрощение синтаксиса и читаемости кода, больше похоже на работу с потоками.
- anyio: универсальная обертка над asyncio или trio плюс множество вспомогательных инструментов.
anyio используется в FastAPI как основная библиотека для работы с асинхронным кодом и вызовом синхронного кода из асинхронного.
В общем, рекомендую почитать про возможности anyio, возможно вы более не будете использовать чистый asyncio в своих проектах)
Это совсем не значит что дефолтный asyncio плох, он тоже даёт достаточный для работы функционал и продолжает развиваться. Например, в версии 3.11 появились TaskGroup, с похожим на trio функционалом. Так что он тоже актуален, просто придется больше написать кода самостоятельно.
#libs#async
#go#docker#golang#media_streaming#remote_control#remote_desktop#self_hosted#virtual_browser#vue#webrtc
Neko is a self-hosted virtual browser that runs inside a Docker container and streams via WebRTC, letting you securely and privately access a full browser or desktop environment from anywhere. It supports multiple users at once, making it great for team collaboration, shared browsing, watch parties, and interactive presentations. You can run various browsers like Firefox, Chrome, or Tor, and even other Linux apps. Neko keeps your data safe by isolating the browser environment, avoids leaving traces on your device, and supports smooth video and audio streaming. This gives you flexible, secure, and private web access with easy sharing and real-time interaction.
https://github.com/m1k1o/neko
#cplusplus#c_plus_plus#cpp#datachannel#libdatachannel#libnice#p2p#peer_to_peer#peerconnection#rfc_8831#rfc_8834#rtcdatachannel#rtcpeerconnection#sctp#webrtc#webrtc_datachannel#webrtc_video#websocket
libdatachannel is a lightweight, easy-to-use C/C++ library that lets you add real-time peer-to-peer data, media, and WebSocket communication to your apps across many platforms like Linux, Windows, macOS, Android, and iOS. It simplifies WebRTC by providing a smaller, simpler alternative to Google's library, with compatibility for browsers like Firefox and Chrome. You can use it to connect native apps directly to web browsers with minimal dependencies, supporting secure connections via GnuTLS, Mbed TLS, or OpenSSL. It also supports compiling to WebAssembly for browser use, making it flexible for cross-platform real-time communication development[1][4]. This helps you build fast, efficient apps for video, audio, or data sharing without heavy libraries.
https://github.com/paullouisageneau/libdatachannel