49 lines
2.5 KiB
Markdown
49 lines
2.5 KiB
Markdown
# TyChat
|
||
|
||
**TyChat** — это легковесный Peer-to-Peer (P2P) мессенджер, использующий [сигнальный сервер](https://git.idkmail.ru/lohrrrr/TyServer) для координации и связи клиентов в обход сетевых ограничений.
|
||
|
||
---
|
||
|
||
## Архитектура и решение проблем NAT
|
||
|
||
В современных реалиях классический P2P сталкивается с проблемой «серых» IP-адресов (Carrier-Grade NAT), из-за которых клиенты не могут установить прямое соединение друг с другом.
|
||
|
||
**TyChat решает эту проблему созданием виртуальной оверлейной сети:**
|
||
|
||
* Сигнальный сервер объединяет подключённые клиенты в единую «локальную сеть».
|
||
* Вместо стандартных IPv4/IPv6 используется кастомная динамическая система адресации, абстрагированная от физического местоположения пользователя.
|
||
|
||
### Система адресации
|
||
|
||
Сеть автоматически масштабируется в зависимости от количества участников:
|
||
|
||
* Изначально каждому новому клиенту выделяется уникальный **6-значный адрес**.
|
||
* При исчерпании пула адресов длина идентификатора автоматически увеличивается до **7 знаков**, затем до **8 знаков** и так далее.
|
||
|
||
---
|
||
|
||
## Реализация
|
||
|
||
`PLACEHOLDER`
|
||
|
||
---
|
||
|
||
## Сборка из исходного кода
|
||
|
||
`PLACEHOLDER`
|
||
|
||
---
|
||
|
||
## Дорожная карта (TODO)
|
||
|
||
* [X] Разработать протокол обмена сообщениями.
|
||
* [X] Реализовать сигнальный сервер.
|
||
* [X] Разработать TUI-клиент (терминальный интерфейс).
|
||
* [ ] Разработать GUI-клиент для ПК.
|
||
* [ ] Реализовать мобильное приложение для Android.
|
||
|
||
---
|
||
|
||
## 💝 Поддержка проекта
|
||
|
||
Понравился проект и хотите поддержать его развитие? Вы можете внести свой вклад через [DonationAlerts](https://dalink.to/palerfnaf). |