TyChat/README.md

49 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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