ΠΠ°Π»ΠΈΡΠ΅Π½ Π½Π°Π±ΠΎΡ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈ ΡΡΡΠ²ΡΡΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ°:
- ΠΏΡΡΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅
, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π·Π²ΡΠΊ ΠΏΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ° Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½ΠΎ Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π½Π° Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ΄ΠΈΡΠΊΠΎΠ²Π΅. ΠΡΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ ΡΠ΅ Π²Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΡΠ°ΡΠΎΠ²Π½ΠΈΡΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π·Π°Π³ΡΠ±Π΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° (Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΊΠΎΠ΄ΡΡ Π½Π° Π ΠΈΠΉΠ΄ β Π‘ΠΎΠ»ΠΎΠΌΠΎΠ½, Π° Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ β ΡΡ Π΅ΠΌΠ° ). ΠΡΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ» RTP (AVP L16, 44100Hz PCM 16-bit). Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°ΠΌΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π·Π²ΡΠΊ, Π½ΠΎ Π² ΠΏΠ»Π°Π½ΠΎΠ²Π΅ΡΠ΅ Π΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π΄ΡΡΠ³ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅.ΠΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΌΡΠ»ΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΠ΄Π°ΡΠ΅Π»Ρ Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π». ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Π΄ΠΈΡΠΊΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡΡΠ°, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠΈΠΏΠ° Π½Π° Π¦ΠΠ£ ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ ΠΏΡΠ΅Π· ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΌΡΠ΅ΠΆΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π»ΠΎΠΊΠ°Π»Π½Π° ΠΌΡΠ΅ΠΆΠ°, ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈ Π±Π΅Π·ΠΆΠΈΡΠ½Π° ΠΌΡΠ΅ΠΆΠ°. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅, ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ ΠΈ Π·Π°Π³ΡΠ±Π°ΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ, Roc Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈΠ·Π±ΠΈΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΠΎΠΊΠ° ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ° Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π½ΠΎΡΡ.
ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄ ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Roc ΠΊΠ°ΡΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡ Π² . Π Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ Π½Π°Π»ΠΈΡΠ½ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π½Π°ΡΠΎΡΠΈΡΠ΅ Π·Π²ΡΠΊ ΠΎΡ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π·Π²ΡΠΊΠΎΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π° Π΅Π΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΡΡΡΡ ΠΊΡΠΌ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π·Π²ΡΠΊΠΎΠ²ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π° Π΄ΡΡΠ³ ΠΊΠΎΠΌΠΏΡΡΡΡ. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π²ΡΠΊΠΎΠ²ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ALSA, PulseAudio ΠΈ CoreAudio. ΠΠΎΠ΄ΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C++ ΠΈ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· MPL-2.0. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ ΡΠ°Π±ΠΎΡΠ° Π² GNU/Linux ΠΈ macOS.
- Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΌΡΠ»ΡΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈΡ ΡΡΡΠ²ΡΡ , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ ΠΏΡΠ΅Π· ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ RTMP, RTSP ΠΈ WebRTC Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π°Π΄Π°ΠΏΡΠΈΠ²Π½Π°ΡΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π±ΠΈΡΡΠ΅ΠΉΡΠ°. Ant ΠΌΠΎΠΆΠ΅ ΡΡΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ Π² ΡΠΎΡΠΌΠ°ΡΠΈΡΠ΅ MP4, HLS ΠΈ FLV. Π‘ΡΠ΅Π΄ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈΠΌ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° WebRTC ΠΊΡΠΌ RTMP ΠΊΠΎΠ½Π²Π΅ΡΡΠΎΡ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° IP ΠΊΠ°ΠΌΠ΅ΡΠΈ ΠΈ IPTV, ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡ Π½Π° ΠΆΠΈΠ²ΠΈ ΠΏΠΎΡΠΎΡΠΈ, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ Π² ΡΠΎΡΠΈΠ°Π»Π½ΠΈ ΠΌΡΠ΅ΠΆΠΈ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ ΡΡΠ΅Π· ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠΈ, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΌΠ°ΡΠΎΠ²ΠΎ ΠΈΠ·Π»ΡΡΠ²Π°Π½Π΅ ΠΎΡ Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° ΠΊΡΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ Ρ Π·Π°Π±Π°Π²ΡΠ½Π΅ ΠΎΡ 500ms.
ΠΡΠΎΠ΄ΡΠΊΡΡΡ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Open Core, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄Π²ΠΈΠΆΠ΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Apache 2.0 ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ Π² Youtube) Π² ΠΏΠ»Π°ΡΠ΅Π½Π° Π²Π΅ΡΡΠΈΡ. Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ ΠΏΡΠ΅Π· WebRTC Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° Ρ 40%, Π΄ΠΎΠ±Π°Π²Π΅Π½ Π΅ Π»ΠΎΠ³ viewer, ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ ΡΠ΅Π± ΠΏΠ°Π½Π΅Π»Π°, Π΄ΠΎΠ±Π°Π²Π΅Π½ Π΅ REST API Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π² Apache Kafka.
- ΡΠ΅Π»ΠΈΠ· Π½Π° ΡΡΡΠ²ΡΡΠ° Π·Π° ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ Π² ΡΠΎΡΠΌΠ°ΡΠΈΡΠ΅ FLV, F4V, MP4 ΠΈ 3GP, Π° ΡΡΡΠΎ ΠΈ Π·Π²ΡΠΊ Π² ΡΠΎΡΠΌΠ°ΡΠΈΡΠ΅ MP3, F4A, M4A, AAC. ΠΠΎΡΡΡΠΏΠ½ΠΈ ΡΠ° ΡΠ΅ΠΆΠΈΠΌΠΈΡΠ΅ Live-Π²Π΅ΡΠ°Π½Π΅ ΠΈ ΡΠ°Π±ΠΎΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°ΡΠ° ΡΡΠ°Π½ΡΠΈΡ Π·Π° ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΠΎΡΠΈ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ (FLV ΠΈ AVC+AAC Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° FLV). ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΏΡΠ΅Π· 2005 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΊΠ°ΡΠΎ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° Flash Communication Server, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° RTMP. ΠΠΎ-ΠΊΡΡΠ½ΠΎ, ΡΡΠ΅Π· ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ, Π² Red5 Π±Π΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ Ρ HLS, WebSockets, RTSP ΠΈ WebRTC.
Red5 ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ ΡΡΡΠ²ΡΡ Π·Π° ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π°ΡΠ΄ΠΈΠΎΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ. ΠΠΎΠ΄ΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Java ΠΈ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Apache 2.0. ΠΠ° Π±Π°Π·Π°ΡΠ° Π½Π° Red5 Π΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ΅Π½ ΠΏΡΠΎΠ΄ΡΠΊΡ , ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΡΠ° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π΄ΠΎ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π·ΡΠΈΡΠ΅Π»ΠΈ Ρ Π΄ΠΎΡΡΠ°Π²Π½ΠΈ Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡ ΠΎΡ 500ms ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π² ΠΎΠ±Π»Π°ΡΠΈ AWS, Google Cloud ΠΈ Azure.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
