MoreliaTalk — безопасный мессенджер с открытым исходным кодом

Привет, Хабр! Сегодня я хочу рассказать вам о проекте, над которым я и ещё несколько разработчиков трудимся уже полтора года. Этот проект называется 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 клиент. Мы просто сместили фокус на более перспективную технологии, и будем пока развивать клиент именно на ней.

Клиент на Qt
Клиент на Qt

Каковы дальнейшие идеи по развитию проекта?

Все идеи по развитию проекта описаны в тикете протокола, но из них можно выделить идею так называемых workspace. Что же это такое? Представьте сервер Slack, но внутри обычного мессенджера, всю мощь ветвления и интеграции с гитхабом, а также сторонними сервисами, не выходя из привычного приложения. Больше никакого хаоса. Вы занимаетесь разработкой какого-либо продукта? — пожалуйста, хоть каждую секунду создавайте чаты, и у вас не будет визуального мусора на главном экране. Всё, что находится внутри workspace — это ваша суверенная территория, которая находится внутри вашего любимого мессенджера. Эта фишка должна будет стать одной из основных в версии сервера 2.0.0. Как только мы реализуем эту фишку, мы сами переберёмся в MoreliaTalk из Telegram и Slack, т.к. наш мессенджер заменит все наши потребности в них.

Маскот

В время разработки сам по себе возник маскот нашего проекта и команды, он же наш логотип, кобра Morelia

Morelia
Morelia

Итог

В общем надо подытожить, что же такое MoreliaTalk. Это мессенджер с открытым исходным кодом, шифрующий всё, что через него проходит, и по сему безопасный, большим потенциалом для развития, амбициозный проект, который стремится вперёд. Мы будем продолжать разработку, и будем переодически рассказывать он ней на Хабре. Не знаю, смог ли я рассказать и описать всё, что задумывал, всё же я не писатель, а программист, однако если есть вопросы, или необходимо дополнить статью чем-либо — милости просим в комменты, я отвечу, и если надо дополню. Спасибо, за то, что прочитали эту статью и до скорой встречи!

Ссылка на наш github
Ссылка на наш сайт

Читайте так же:

  • YouTube добавил данные о доходах и трафике в мобильную версию АналитикиYouTube добавил данные о доходах и трафике в мобильную версию Аналитики YouTube расширил количество тех данных, которые доступны в мобильной версии YouTube Аналитики. В их числе – отчеты о доходах и трафике, которые раньше можно было увидеть только в десктопной версии. Сервис также предоставил авторам новый способ подачи апелляции при исключении из […]
  • Google опубликовал видео о роли BERT в поискеGoogle опубликовал видео о роли BERT в поиске Google опубликовал небольшое видео о том, как BERT помогает поисковой системе понимать человеческую речь. Google использует BERT с 2018 года, но об этом стало известно только в 2019 году. В ролике компания рассказала, как эта модель помогает лучше обрабатывать запросы с учетом […]
  • В сети появился новый инструмент для анализа похожих запросов в GoogleВ сети появился новый инструмент для анализа похожих запросов в Google В сети появился новый SEO-инструмент для получения данных по похожим запросам в Google – People Also Ask Tool. На данный момент он находится на стадии бета-тестирования и доступен на бесплатной основе, но только на английском языке. Whoa, check out this new (+ currently free) SEO […]
  • Как создать качественный контент для сайтаКак создать качественный контент для сайта Примечание редактора: то, что представляет собой качественный контент. Может быть изменчивым. Но маркетологи контента должны определить его для своих программ. Чтобы знать. Является ли контент успешным. Чтобы помочь вам определить качество, мы вернули этот пост пару лет назад. […]