ืฉื—ืจื•ืจ ืฉืœ Dendrite 0.1.0, ืฉืจืช ืชืงืฉื•ืจืช ืขื ื™ื™ืฉื•ื ืฉืœ ืคืจื•ื˜ื•ืงื•ืœ Matrix

ื™ืฆื ืœืื•ืจ ืฉื—ืจื•ืจ ืฉืจืช ืžื˜ืจื™ืงืก ื“ื ื“ืจื™ื˜ 0.1.0, ืฉืกื™ืžืŸ ืืช ื”ืžืขื‘ืจ ืฉืœ ื”ืคื™ืชื•ื— ืœืฉืœื‘ ื‘ื“ื™ืงื•ืช ื”ื‘ื˜ื. Dendrite ืžืคื•ืชื—ืช ืขืœ ื™ื“ื™ ืฆื•ื•ืช ื”ืœื™ื‘ื” ืฉืœ ืžืคืชื—ื™ ืคืœื˜ืคื•ืจืžืช ื”ืชืงืฉื•ืจืช ื”ืžื‘ื•ื–ืจืช Matrix ื•ืžืžื•ืงืžืช ื›ื™ื™ืฉื•ื ืฉืœ ื”ื“ื•ืจ ื”ืฉื ื™ ืฉืœ ืจื›ื™ื‘ื™ ืฉืจืช ืžื˜ืจื™ืงืก. ื‘ื ื™ื’ื•ื“ ืœืฉืจืช ื”ืคื ื™ื•ืช ืกื™ื ืคืกื”, ื›ืชื•ื‘ ื‘-Python, ืงื•ื“ Dendrite ืžืชืคืชื— ื‘ืฉืคืช Go. ืฉื ื™ ื”ื”ื˜ืžืขื•ืช ื”ืจืฉืžื™ื•ืช ืžื•ืจืฉื•ืช ืชื—ืช ืจื™ืฉื™ื•ืŸ Apache 2.0. ื‘ื’ื‘ื•ืœื•ืช ื”ืคืจื•ื™ืงื˜ ืจื•ืžื ื’ืจืกื” ืฉืœ ืฉืจืช Matrix ื‘ืฉืคืช Rust ืžืคื•ืชื—ืช ื‘ื ืคืจื“, ืืฉืจ ืžื•ืคืฅ ืขืœ ื™ื“ื™ ืชื—ืช ืจื™ืฉื™ื•ืŸ MIT.

ื”ืฉืจืช ื”ื—ื“ืฉ ืžื›ื•ื•ืŸ ืœื”ืฉื’ืช ื™ืขื™ืœื•ืช ื’ื‘ื•ื”ื”, ืืžื™ื ื•ืช ื•ืžื“ืจื’ื™ื•ืช. Dendrite ืžืชื’ื‘ืจ ืขืœ Synapse, ื“ื•ืจืฉ ืคื—ื•ืช ื–ื™ื›ืจื•ืŸ ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ื›ื“ื™ ืœืคืขื•ืœ, ื•ื™ื›ื•ืœ ืœื”ืชืื™ื ืืช ืงื ื” ื”ืžื™ื“ื” ื‘ืืžืฆืขื•ืช ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ืขืœ ืคื ื™ ืžืกืคืจ ืฆืžืชื™ื. ืืจื›ื™ื˜ืงื˜ื•ืจืช Dendrite ืชื•ืžื›ืช ื‘ืงื ื” ืžื™ื“ื” ืื•ืคืงื™ ื•ืžื‘ื•ืกืกืช ืขืœ ื”ืคืจื“ื” ืฉืœ ืžื˜ืคืœื™ื ื‘ืฆื•ืจื” ืฉืœ ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื, ื›ืืฉืจ ืœื›ืœ ืžื•ืคืข ืžื™ืงืจื•-ืฉื™ืจื•ืช ื™ืฉ ื˜ื‘ืœืื•ืช ืžืฉืœื• ื‘ืžืกื“ ื”ื ืชื•ื ื™ื. ืžืื–ืŸ ื”ืขื•ืžืก ืฉื•ืœื— ืฉื™ื—ื•ืช ืœืฉื™ืจื•ืชื™ ืžื™ืงืจื•. ื›ื“ื™ ืœื”ืงื‘ื™ืœ ืคืขื•ืœื•ืช ื‘ืงื•ื“, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘-threads (go routines), ื”ืžืืคืฉืจื™ื ืœื”ืฉืชืžืฉ ื‘ืžืฉืื‘ื™ื ืฉืœ ื›ืœ ืœื™ื‘ื•ืช ื”-CPU ืžื‘ืœื™ ืœื—ืœืง ืื•ืชื ืœืชื”ืœื™ื›ื™ื ื ืคืจื“ื™ื.

ืฉื—ืจื•ืจ ืฉืœ Dendrite 0.1.0, ืฉืจืช ืชืงืฉื•ืจืช ืขื ื™ื™ืฉื•ื ืฉืœ ืคืจื•ื˜ื•ืงื•ืœ Matrix

ื“ื ื“ืจื™ื˜ ืชื•ืžืš ื‘ืฉื ื™ ืžืฆื‘ื™ื: ืžื•ื ื•ืœื™ื˜ื™ ื•ืคื•ืœื™ืœื™ืช. ื‘ืžืฆื‘ ืžื•ื ื•ืœื™ื˜ื™, ื›ืœ ื”ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื ืืจื•ื–ื™ื ื‘ืงื•ื‘ืฅ ื”ืคืขืœื” ื™ื—ื™ื“, ืžื•ืคืขืœื™ื ื‘ืชื”ืœื™ืš ื™ื—ื™ื“ ื•ืžืงื™ื™ืžื™ื ืื™ื ื˜ืจืืงืฆื™ื” ื™ืฉื™ืจื” ื–ื” ืขื ื–ื”. ื‘ืžืฆื‘ ืจื™ื‘ื•ื™ ืจื›ื™ื‘ื™ื (ืืฉื›ื•ืœ), ื ื™ืชืŸ ืœื”ืคืขื™ืœ ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื ื‘ื ืคืจื“, ื›ื•ืœืœ ื”ืคืฆื” ืขืœ ืคื ื™ ืฆืžืชื™ื ืฉื•ื ื™ื. ืื™ื ื˜ืจืืงืฆื™ื” ืฉืœ ืจื›ื™ื‘ื™ื ื‘
ืžืฆื‘ ืจื™ื‘ื•ื™ ืจื›ื™ื‘ื™ื ืžืชื‘ืฆืข ื‘ืืžืฆืขื•ืช ื”-API ื•ื”ืคืœื˜ืคื•ืจืžื” ื”ืคื ื™ืžื™ื™ื ืฉืœ HTTP ืืคืืฆ'ื™ ืงืคืงื.

ื”ืคื™ืชื•ื— ืžืชื‘ืฆืข ืขืœ ื‘ืกื™ืก ืžืคืจื˜ื™ ืคืจื•ื˜ื•ืงื•ืœ Matrix ื•ื‘ืืžืฆืขื•ืช ืฉืชื™ ื—ื‘ื™ืœื•ืช ื‘ื“ื™ืงื” - ื‘ื“ื™ืงื•ืช ืžืฉื•ืชืคื•ืช ืœ-Synapse ืžืขืจื›ืช ื•ืกื˜ ื—ื“ืฉ ื”ืฉืœืžื”. ื‘ืฉืœื‘ ื”ืคื™ืชื•ื— ื”ื ื•ื›ื—ื™, Dendrite ืขื•ื‘ืจ 56% ืžื‘ื“ื™ืงื•ืช ื”-Client-Server API ื•-77% ืžื‘ื“ื™ืงื•ืช Federation API, ื‘ืขื•ื“ ืฉื›ื™ืกื•ื™ ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื‘ืคื•ืขืœ ืžื•ืขืจืš ื‘-70% ืขื‘ื•ืจ Client-Server API ื•-95% ืขื‘ื•ืจ Federation API.

ืฉืœื‘ ื‘ื“ื™ืงื•ืช ื”ื‘ื˜ื ืžืฆื‘ื™ืข ืขืœ ื›ืš ืฉ-Dendrite ืžื•ื›ืŸ ืœื™ื™ืฉื•ื ืจืืฉื•ื ื™ ื•ืœืžืขื‘ืจ ืœืคื™ืชื•ื— ืขื ืžื”ื“ื•ืจื•ืช ื—ื“ืฉื•ืช ืฉื ื•ืฆืจื•ืช ืžืขืช ืœืขืช. ื‘ื™ืŸ ืžื”ื“ื•ืจื•ืช, ืกื›ื™ืžืช ืื—ืกื•ืŸ ื”ื ืชื•ื ื™ื ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ืชืชืขื“ื›ืŸ ื›ืขืช (ื‘ื ื™ื’ื•ื“ ืœื”ืชืงื ืช ืคืจื•ืกื•ืช ืžื”ืžืื’ืจ, ืชื•ื›ืŸ ืžืกื“ ื”ื ืชื•ื ื™ื ืœื ื™ืื‘ื“ ืœืื—ืจ ื”ืขื“ื›ื•ืŸ). ืฉื™ื ื•ื™ื™ื ืฉื™ืฉื‘ืจื• ืชืื™ืžื•ืช ืœืื—ื•ืจ, ืžืฉื ื™ื ืืช ืžื‘ื ื” ืžืกื“ ื”ื ืชื•ื ื™ื ืื• ื“ื•ืจืฉื™ื ืฉื™ื ื•ื™ื™ ืชืฆื•ืจื” ื™ื•ืฆืขื• ืจืง ื‘ืžื”ื“ื•ืจื•ืช ื’ื“ื•ืœื•ืช. ื›ืจื’ืข ืžื•ืžืœืฅ ืœื”ืฉืชืžืฉ ื‘-Dendrite ื‘ืžืฆื‘ ืžื•ื ื•ืœื™ื˜ื™ ื‘ืฉื™ืœื•ื‘ ืขื DBMS PostgreSQL ืœื™ืฆื™ืจืช ืฉืจืชื™ื ื‘ื™ืชื™ื™ื ืงื˜ื ื™ื ื•ืฆืžืชื™ P2P. ื”ืฉื™ืžื•ืฉ ื‘-SQLite ืขื“ื™ื™ืŸ ืื™ื ื• ืžื•ืžืœืฅ ืขืงื‘ ื‘ืขื™ื•ืช ืœื ืคืชื•ืจื•ืช ื‘ื˜ื™ืคื•ืœ ื‘ืคืขื•ืœื•ืช ื‘ืžืงื‘ื™ืœ.

ืชื›ื•ื ื•ืช ืฉืขื“ื™ื™ืŸ ืœื ื™ื•ืฉืžื• ื‘ื“ื ื“ืจื™ื™ื˜ ื›ื•ืœืœื•ืช ืื™ืฉื•ืจื™ ืงื‘ืœื” ืฉืœ ื”ื•ื“ืขื•ืช, ืกื™ืžื ื™ ืงืจื™ืื”, ื”ื•ื“ืขื•ืช ื“ื—ื™ืคื”, OpenID, ืื™ื’ื•ื“ ื“ื•ืืจ ืืœืงื˜ืจื•ื ื™, ื—ื™ืคื•ืฉ ื‘ืฆื“ ื”ืฉืจืช, ืกืคืจื™ื™ืช ืžืฉืชืžืฉื™ื, ืจืฉื™ืžื•ืช ื”ืชืขืœืžื•ืช ืฉืœ ืžืฉืชืžืฉื™ื, ื™ืฆื™ืจืช ืงื‘ื•ืฆื•ืช ื•ืงื”ื™ืœื•ืช, ื”ืขืจื›ืช ื ื•ื›ื—ื•ืช ื”ืžืฉืชืžืฉ ื‘ืื™ื ื˜ืจื ื˜, ืงืœื˜ ืื•ืจื—, ืื™ื ื˜ืจืืงืฆื™ื” ืขื ืจืฉืชื•ืช ืฉืœ ืฆื“ ืฉืœื™ืฉื™.

ื–ืžื™ื ื•ืช ืœืฉื™ืžื•ืฉ ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื‘ืกื™ืกื™ืช ืœื—ื“ืจื™ ืฆ'ืื˜ (ื™ืฆื™ืจื”, ื”ื–ืžื ื•ืช, ื›ืœืœื™ ืื™ืžื•ืช), ืืžืฆืขื™ ื”ืคื“ืจืฆื™ื” ืฉืœ ืžืฉืชืชืคื™ื ื‘ื—ื“ืจื™ื, ืกื ื›ืจื•ืŸ ืื™ืจื•ืขื™ื ืœืื—ืจ ื—ื–ืจื” ืžืžืฆื‘ ืœื ืžืงื•ื•ืŸ, ื—ืฉื‘ื•ื ื•ืช, ืคืจื•ืคื™ืœื™ื, ื—ื™ื•ื’ ื—ื™ื•ื’, ื”ื•ืจื“ื” ื•ื”ืขืœืื” ืฉืœ ืงื‘ืฆื™ื (Media API), ืขืจื™ื›ืช ื”ื•ื“ืขื•ืช, ACLs, ื›ืจื™ื›ืช ืชื’ื™ื ื•ืขื‘ื•ื“ื” ืขื ืจืฉื™ืžื•ืช ืฉืœ ืžื›ืฉื™ืจื™ื ื•ืžืคืชื—ื•ืช ืœื”ืฆืคื ื” ืžืงืฆื” ืœืงืฆื”.

ื ื–ื›ื™ืจ ื›ื™ ื”ืคืœื˜ืคื•ืจืžื” ืœืืจื’ื•ืŸ ืชืงืฉื•ืจืช ืžื‘ื•ื–ืจืช ืžื˜ืจื™ืงืก ืžืฉืชืžืฉืช ื‘-HTTPS+JSON ื›ืชื—ื‘ื•ืจื” ืขื ืืคืฉืจื•ืช ืœื”ืฉืชืžืฉ ื‘-WebSockets ืื• ื‘ืคืจื•ื˜ื•ืงื•ืœ ื”ืžื‘ื•ืกืก ืขืœ CoAP+ืจืขืฉ. ื”ืžืขืจื›ืช ื ื•ืฆืจืช ื›ืงื”ื™ืœื” ืฉืœ ืฉืจืชื™ื ืฉื™ื›ื•ืœื™ื ืœืงื™ื™ื ืื™ื ื˜ืจืืงืฆื™ื” ื–ื” ืขื ื–ื” ื•ืžืื•ื—ื“ื™ื ืœืจืฉืช ืžื‘ื•ื–ืจืช ืžืฉื•ืชืคืช. ื”ื•ื“ืขื•ืช ืžืฉื•ื›ืคืœื•ืช ื‘ื›ืœ ื”ืฉืจืชื™ื ืฉืืœื™ื”ื ืžื—ื•ื‘ืจื™ื ืžืฉืชืชืคื™ ื”ื”ื•ื“ืขื•ืช. ื”ื•ื“ืขื•ืช ืžื•ืคืฆื•ืช ืขืœ ืคื ื™ ืฉืจืชื™ื ื‘ืื•ืชื• ืื•ืคืŸ ืฉื‘ื• commits ืžื•ืคืฆื•ืช ื‘ื™ืŸ ืžืื’ืจื™ Git. ื‘ืžืงืจื” ืฉืœ ื”ืคืกืงืช ืฉืจืช ื–ืžื ื™ืช, ื”ื•ื“ืขื•ืช ืœื ืื•ื‘ื“ื•ืช, ืืœื ืžื•ืขื‘ืจื•ืช ืœืžืฉืชืžืฉื™ื ืœืื—ืจ ืฉื”ืฉืจืช ื—ื•ื–ืจ ืœืคืขื•ืœ. ืืคืฉืจื•ื™ื•ืช ื–ื™ื”ื•ื™ ืžืฉืชืžืฉ ืฉื•ื ื•ืช ื ืชืžื›ื•ืช, ื›ื•ืœืœ ื“ื•ืืจ ืืœืงื˜ืจื•ื ื™, ืžืกืคืจ ื˜ืœืคื•ืŸ, ื—ืฉื‘ื•ืŸ ืคื™ื™ืกื‘ื•ืง ื•ื›ื•'.

ืื™ืŸ ื ืงื•ื“ืช ื›ืฉืœ ืื—ืช ืื• ื‘ืงืจืช ื”ื•ื“ืขื•ืช ื‘ืจื—ื‘ื™ ื”ืจืฉืช. ื›ืœ ื”ืฉืจืชื™ื ื”ืžื›ื•ืกื™ื ื‘ื“ื™ื•ืŸ ืฉื•ื•ื™ื ื–ื” ืœื–ื”.
ื›ืœ ืžืฉืชืžืฉ ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืฉืจืช ืžืฉืœื• ื•ืœื—ื‘ืจ ืื•ืชื• ืœืจืฉืช ืžืฉื•ืชืคืช. ืืคืฉืจ ืœื™ืฆื•ืจ ืฉืขืจื™ื ืœืื™ื ื˜ืจืืงืฆื™ื” ืฉืœ ืžื˜ืจื™ืงืก ืขื ืžืขืจื›ื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ ืคืจื•ื˜ื•ืงื•ืœื™ื ืื—ืจื™ื, ืœืžืฉืœ, ืžื•ึผื›ึธืŸ ืฉื™ืจื•ืชื™ื ืœืฉืœื™ื—ืช ื”ื•ื“ืขื•ืช ื“ื•-ื›ื™ื•ื•ื ื™ืช ืœ-IRC, ืคื™ื™ืกื‘ื•ืง, ื˜ืœื’ืจื, ืกืงื™ื™ืค, Hangouts, ืื™ืžื™ื™ืœ, WhatsApp ื•-Slack. ื‘ื ื•ืกืฃ ืœื”ื•ื“ืขื•ืช ื˜ืงืกื˜ ื•ืฆ'ืื˜ื™ื ืžื™ื™ื“ื™ื™ื, ื”ืžืขืจื›ืช ื™ื›ื•ืœื” ืœืฉืžืฉ ืœื”ืขื‘ืจืช ืงื‘ืฆื™ื, ืฉืœื™ื—ืช ื”ืชืจืื•ืช,
ืืจื’ื•ืŸ ื•ืขื™ื“ื•ืช ื˜ืœืคื•ื ื™ื•ืช, ื‘ื™ืฆื•ืข ืฉื™ื—ื•ืช ืงื•ืœื™ื•ืช ื•ื•ื™ื“ืื•. ื–ื” ื’ื ืชื•ืžืš ื‘ืชื›ื•ื ื•ืช ืžืชืงื“ืžื•ืช ื›ื’ื•ืŸ ื”ื•ื“ืขื•ืช ืขืœ ื”ืงืœื“ื”, ื”ืขืจื›ืช ื ื•ื›ื—ื•ืช ืžืฉืชืžืฉ ืžืงื•ื•ื ืช, ืื™ืฉื•ืจ ืงืจื™ืื”, ื”ื•ื“ืขื•ืช ื“ื—ื™ืคื”, ื—ื™ืคื•ืฉ ื‘ืฆื“ ื”ืฉืจืช, ืกื ื›ืจื•ืŸ ืฉืœ ื”ื™ืกื˜ื•ืจื™ื” ื•ืกื˜ื˜ื•ืก ื”ืœืงื•ื—.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”