MoreliaTalk — безопасный мессенджер с открытым исходным кодом
- пятница, 25 февраля 2022 г. в 00:36:31
Привет, Хабр! Сегодня я хочу рассказать вам о проекте, над которым я и ещё несколько разработчиков трудимся уже полтора года. Этот проект называется MoreliaTalk. Что это же он из себя представляет? MoreliaTalk - это мессенджер с открытым исходным кодом, построенный на клиент-серверной архитектуре. Сервер и клиенты можно использовать как встраиваемое решение для быстрого развёртывания функционала современного чата в своём проекте, так и в личных целях. Сервер написан на языке Python, а клиенты используют разные технологии для охвата как можно большего количества платформ. Это если описывать кратко, не вдаваясь в детали. А детали будут дальше...
Проект, появился в июне 2020 года. После прохождения интенсива от компании SkillBox "Мессенджер за 3 дня", группа энтузиастов решила двигаться дальше, и продолжила разработку мессенджера. Так и родился проект MoreliaTalk.
Стоит ещё добавить, что после интенсива наш уровень был чуть выше уровня новичка, поэтому мы двигались методом проб и ошибок, однако же мы сразу старались использовать современные технологии и документировать код. Сейчас наш уровень куда выше, однако мы всё равно открыты к советам и дельным предложениям.
Мы пришли к выводу, что связь между клиентом и сервером в современном мессенджере должна происходить не через get-запросы, а через протокол webscoket. А также решили написать свой протокол, описывающий структуру данных в json-е. Посовещавшись, мы снесли код сервера подчистую, и заново написали его уже на fastapi и websockets, а также реализовали в нём свой протокол. В общем наш мессенджер является развитием идеи, а не прямым потомком мессенджера со SkillBox.
Цель проекта - это предоставление людям системы чатов, которая легко встраивается куда угодно, шифрует данные, не позволяя получить к ним доступ никому, кроме вас и ваших собеседников. И самое главное - код нашего проекта ВСЕГДА открыт, и мы всегда рады вкладу сторонних разработчиков.
На момент написания статьи, а это 21 февраля 2022 года, у нас реализованы:
{
"type": "get_update",
"data": {
"time": 1594492370,
"flow": [{
"uuid": "1254",
"time": 1594492370,
"type": "chat",
"title": "Name Chat",
"info": "Info about this chat",
"owner": "123456",
"users": ["123456", "65478"],
"message_start": 0,
"message_end": 100
}],
"message": [{
"uuid": "1",
"client_id": 123,
"text": "some text...",
"from_user": "1234567",
"time": 1594492370,
"from_flow": "123655455",
"file_picture": "jkfikdkdsd",
"file_video": "sdfsdfsdf",
"file_audio": "fgfsdfsdfsdf",
"file_document": "fghsfghsfgh",
"emoji": "sfdfsdfsdf",
"edited_time": 1594492370,
"edited_status": true
}],
"user": [{
"uuid": "1234567",
"login": "username1",
"password": "lksdjflksjfsd",
"username": "Vasya",
"is_bot": true,
"auth_id": "4646hjgjhg64",
"token_ttl": 6000,
"email": "querty@querty.com",
"avatar": "fffdddddd",
"bio": "My bio",
"time_created": 2542445821452
}],
"meta": null
},
"errors": {
"code": 200,
"status": "OK",
"time": 1594492370,
"detail": "successfully"
},
"jsonapi": {
"version": "1.0",
"revision": "17"
},
"meta": null
}
Сейчас у нас в разработке:
Протокол версии 2.0(см. ссылку)
Первый стабильный релиз сервера 1.0.0(см. roadmap)
Кроссплатформенный клиент, написанный на Dart и Flutter
По клиенту хотелось бы пройтись поподробнее. На данный момент у нас имеется клиент на Python и Qt( правда, тоже в стадии разработки))) ), однако мы отказались от него в пользу клиента на Flutter, т.к. это позволит покрыть нам намного больше платформ, имея при этом единую кодовую базу клиента. Это не значит, что мы забросили Qt клиент. Мы просто сместили фокус на более перспективную технологии, и будем пока развивать клиент именно на ней.
Все идеи по развитию проекта описаны в тикете протокола, но из них можно выделить идею так называемых workspace. Что же это такое? Представьте сервер Slack, но внутри обычного мессенджера, всю мощь ветвления и интеграции с гитхабом, а также сторонними сервисами, не выходя из привычного приложения. Больше никакого хаоса. Вы занимаетесь разработкой какого-либо продукта? - пожалуйста, хоть каждую секунду создавайте чаты, и у вас не будет визуального мусора на главном экране. Всё, что находится внутри workspace - это ваша суверенная территория, которая находится внутри вашего любимого мессенджера. Эта фишка должна будет стать одной из основных в версии сервера 2.0.0. Как только мы реализуем эту фишку, мы сами переберёмся в MoreliaTalk из Telegram и Slack, т.к. наш мессенджер заменит все наши потребности в них.
В время разработки сам по себе возник маскот нашего проекта и команды, он же наш логотип, кобра Morelia
В общем надо подытожить, что же такое MoreliaTalk. Это мессенджер с открытым исходным кодом, шифрующий всё, что через него проходит, и по сему безопасный, большим потенциалом для развития, амбициозный проект, который стремится вперёд. Мы будем продолжать разработку, и будем переодически рассказывать он ней на Хабре. Не знаю, смог ли я рассказать и описать всё, что задумывал, всё же я не писатель, а программист, однако если есть вопросы, или необходимо дополнить статью чем-либо - милости просим в комменты, я отвечу, и если надо дополню. Спасибо, за то, что прочитали эту статью и до скорой встречи!