diff --git a/README.md b/README.md index b9ecd12..2a5f60d 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,49 @@ # TyChat -Всегда хотели сделать свой мессенджер но не знаете как? -Данный репозиторий содержит базовые классы как для клиента так и для сервера которые можно наследовать. +**TyChat** — это легковесный Peer-to-Peer (P2P) мессенджер, использующий сигнальный сервер для координации и связи клиентов в обход сетевых ограничений. -## Как начать пользоваться -1. Создаете форк данного репозитория или клонируйте его локально -2. Наследуете класс клиента и пишите клиент -3. Пишете собственный способ передачи данных и протокол или находите подходящие. -4. Пишите сервер или используете оффициальный сигнальный сервер находящийся на http://6969.рф:5000 +--- +## Архитектура и решение проблем NAT -Понравился проект и хотите поддержать его развитие? Поддержите его на (DaLink)[https://dalink.to/palerfnaf] \ No newline at end of file +В современных реалиях классический P2P сталкивается с проблемой «серых» IP-адресов (Carrier-Grade NAT), из-за которых клиенты не могут установить прямое соединение друг с другом. + +**TyChat решает эту проблему созданием виртуальной оверлейной сети:** + +* Сигнальный сервер объединяет подключённые клиенты в единую «локальную сеть». +* Вместо стандартных IPv4/IPv6 используется кастомная динамическая система адресации, абстрагированная от физического местоположения пользователя. + +### Система адресации + +Сеть автоматически масштабируется в зависимости от количества участников: + +* Изначально каждому новому клиенту выделяется уникальный **6-значный адрес**. +* При исчерпании пула адресов длина идентификатора автоматически увеличивается до **7 знаков**, затем до **8 знаков** и так далее. + +--- + +## Реализация + +`PLACEHOLDER` + +--- + +## Сборка из исходного кода + +`PLACEHOLDER` + +--- + +## Дорожная карта (TODO) + +* [ ] Разработать протокол обмена сообщениями. +* [ ] Реализовать сигнальный сервер. +* [ ] Разработать TUI-клиент (терминальный интерфейс). +* [ ] Разработать GUI-клиент для ПК. +* [ ] Реализовать мобильное приложение для Android. + +--- + +## 💝 Поддержка проекта + +Понравился проект и хотите поддержать его развитие? Вы можете внести свой вклад через [DonationAlerts](https://dalink.to/palerfnaf). \ No newline at end of file