Kutolewa kwa Dendrite 0.1.0, seva ya mawasiliano yenye utekelezaji wa itifaki ya Matrix

iliyochapishwa выпуск Matrix-сСрвСра Dendrite 0.1.0, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ·Π½Π°ΠΌΠ΅Π½ΠΎΠ²Π°Π» ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° ΡΡ‚Π°Π΄ΠΈΡŽ Π±Π΅Ρ‚Π°-тСстирования. Dendrite развиваСтся основной ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Matrix ΠΈ позиционируСтся ΠΊΠ°ΠΊ рСализация Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ поколСния сСрвСрных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Matrix. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ эталонного сСрвСра Sinepsi, написанного Π½Π° языкС Python, ΠΊΠΎΠ΄ Dendrite yanaendelea Π½Π° языкС Go. ОбС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ruma ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ развиваСтся Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ сСрвСра Matrix Π½Π° языкС Rust, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ kusambazwa na chini ya leseni ya MIT.

Новый сСрвСр Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° достиТСниС высокой эффСктивности, надёТности ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ. Dendrite ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ Synapse ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ для своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ сущСствСнно мСньшС памяти ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° нСсколько ΡƒΠ·Π»ΠΎΠ². АрхитСктура Dendrite ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ основываСтся Π½Π° Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ΅ микросСрвисов, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ экзСмпляр микросСрвиса ΠΈΠΌΠ΅Π΅Ρ‚ свои Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Π‘Π”. ДиспСтчСризациСй обращСния ΠΊ микросСрвисам занимаСтся балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Для распаралСлливания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠΈ (go routines), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ рСсурсы всСх ядСр CPU Π±Π΅Π· раздСлСния Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ процСссы.

Kutolewa kwa Dendrite 0.1.0, seva ya mawasiliano yenye utekelezaji wa itifaki ya Matrix

Dendrite ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π΄Π²ΡƒΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… β€” ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠΌ (polylith). Π’ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ всС микросСрвисы скомпонованы Π² ΠΎΠ΄Π½ΠΎΠΌ исполняСмом Ρ„Π°ΠΉΠ»Π΅, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ процСссС ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π’ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠΌ (кластСрном) Ρ€Π΅ΠΆΠΈΠΌΠ΅ микросСрвисы ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ-ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π² Ρ‚ΠΎΠΌ числС с разнСсСниСм ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΡƒΠ·Π»Π°ΠΌ. ВзаимодСйствиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π²
ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ HTTP API ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Apache Kafka.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° вСдётся Π½Π° основС спСцификаций ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Matrix ΠΈ с использованиСм Π΄Π²ΡƒΡ… тСстовых Π½Π°Π±ΠΎΡ€ΠΎΠ² β€” ΠΎΠ±Ρ‰ΠΈΡ… с Synapse тСстов sytest ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Kamilisha. На Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ этапС развития Dendrite ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ 56% тСстов Client-Server API ΠΈ 77% тСстов Federation API, ΠΏΡ€ΠΈ этом фактичСский ΠΎΡ…Π²Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ оцСниваСтся Π² 70% для Client-Server API ΠΈ 95% для Federation API.

Бтадия Π±Π΅Ρ‚Π°-тСстирования ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ готовности Dendrite для Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ внСдрСния ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ с пСриодичСским Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²Ρ‹Ρ… выпусков. ΠœΠ΅ΠΆΠ΄Ρƒ выпусками Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ схСмы хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘Π” (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ установки срСзов ΠΈΠ· рСпозитория, послС обновлСния содСрТимоС Π±Π°Π·Ρ‹ Ρ‚Π΅Ρ€ΡΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚). ИзмСнСния, Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ структуру Π‘Π” ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… выпусках. Dendrite ΠΏΠΎΠΊΠ° рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ совмСстно с Π‘Π£Π‘Π” PostgreSQL для создания Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… исходных сСрвСров (homeserver) ΠΈ P2P-ΡƒΠ·Π»ΠΎΠ². ИспользованиС SQLite ΠΏΠΎΠΊΠ° Π½Π΅ рСкомСндуСтся ΠΈΠ·-Π·Π° Π½Π΅Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Из ΠΏΠΎΠΊΠ° Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² Dendrite возмоТностСй ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ΡΡ подтвСрТдСния получСния сообщСний, ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΈ, push-увСдомлСния, OpenID, привязка ΠΊ email, поиск Π½Π° сторонС сСрвСра, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, списки игнорирования ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, созданиС Π³Ρ€ΡƒΠΏΠΏ ΠΈ сообщСств, ΠΎΡ†Π΅Π½ΠΊΠ° присутствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² online, гостСвыС Π²Ρ…ΠΎΠ΄Ρ‹, взаимодСйствиС со сторонними сСтями.

Доступны для использования базовая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‡Π°Ρ‚-ΠΊΠΎΠΌΠ½Π°Ρ‚ (созданиС, ΠΈΠ½Π²Π°ΠΉΡ‚Ρ‹, ΠΏΡ€Π°Π²ΠΈΠ»Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ), срСдства Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ участников Π² ΠΊΠΎΠΌΠ½Π°Ρ‚Π°Ρ…, синхронизация событий послС возвращСния ΠΈΠ· offline, ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Π΅ записи, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ, индикация Π½Π°Π±ΠΎΡ€Π°, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ ΠΎΡ‚Π΄Π°Ρ‡Π° Ρ„Π°ΠΉΠ»ΠΎΠ² (Media API), Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сообщСний, ACL, привязка Ρ‚Π΅Π³ΠΎΠ² ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° со списками устройств ΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ для сквозного ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ.

Напомним, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ Matrix примСняСт Π² качСствС транспорта HTTPS+JSON с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ использования WebSockets ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π½Π° Π±Π°Π·Π΅ KOZI+Kelele. Mfumo huu umeundwa kama jumuiya ya seva zinazoweza kuingiliana na kuunganishwa kuwa mtandao wa kawaida uliogatuliwa. Ujumbe unakiliwa kwenye seva zote ambazo washiriki wa utumaji ujumbe wameunganishwa. Ujumbe huenezwa kwenye seva kwa njia ile ile ambayo ahadi huenezwa kati ya hazina za Git. Katika tukio la kukatika kwa seva kwa muda, ujumbe haupotei, lakini hupitishwa kwa watumiaji baada ya seva kuanza tena operesheni. Chaguo mbalimbali za kitambulisho cha mtumiaji zinatumika, ikiwa ni pamoja na barua pepe, nambari ya simu, akaunti ya Facebook, nk.

Hakuna hatua moja ya kushindwa au udhibiti wa ujumbe kwenye mtandao. Seva zote zinazoshughulikiwa na majadiliano ni sawa kwa kila mmoja.
Mtumiaji yeyote anaweza kuendesha seva yake mwenyewe na kuiunganisha kwenye mtandao wa kawaida. Inawezekana kuunda malango kwa mwingiliano wa Matrix na mifumo kulingana na itifaki zingine, kwa mfano, tayari huduma za kutuma ujumbe wa njia mbili kwa IRC, Facebook, Telegraph, Skype, Hangouts, Barua pepe, WhatsApp na Slack. Mbali na ujumbe wa maandishi na mazungumzo ya papo hapo, mfumo unaweza kutumika kuhamisha faili, kutuma arifa,
kuandaa mikutano ya simu, kupiga simu za sauti na video. Pia inasaidia vipengele vya juu kama vile arifa ya kuandika, tathmini ya uwepo wa mtumiaji mtandaoni, uthibitisho wa kusoma, arifa zinazotumwa na programu, utafutaji wa upande wa seva, usawazishaji wa historia na hali ya mteja.

Chanzo: opennet.ru

Kuongeza maoni