
чат Bluetooth-сетки, в стиле IRC
Децентрализованное пиринговое приложение для обмена сообщениями с двухтранспортной архитектурой: локальные Bluetooth-меш-сети для офлайн-связи и интернет-протокол Nostr для глобального охвата. Никаких аккаунтов, никаких номеров телефонов, никаких центральных серверов. Это боковой групповой чат.
Этот проект находится в общественном достоянии. Подробнее см. в файле LICENSE.
/slap, /msg, /whoBitChat использует гибридную архитектуру обмена сообщениями с двумя взаимодополняющими транспортными уровнями:
| Транспорт | Область | Интернет | Сценарий использования |
|---|---|---|---|
| Bluetooth Low Energy, меш-сеть | Локальные устройства в пределах многошаговой досягаемости | Не требуется | Офлайн-связь, протесты, катастрофы, удалённые районы |
Личные сообщения используют интеллектуальный выбор транспорта:
Bluetooth в первую очередь (предпочтительно, если доступен)
Запасной вариант – Nostr (если Bluetooth недоступен)
Умная очередь (когда недоступен ни один транспорт)
Подробную документацию по протоколу см. в Техническом документе.
cd bitchat
open bitchat.xcodeproj
Для запуска на устройстве нужно выполнить несколько шагов для подготовки кода:
cp Configs/Local.xcconfig.example Configs/Local.xcconfigConfigs/Local.xcconfig
chat.bitchat.<team_id> (если не задано иное)group.chat.bitchat на group.<your_bundle_id> (например, group.chat.bitchat.ABC123)justbrew install just
Хотите попробовать на macOS: just run настроит и запустит из исходников. После этого выполните just clean, чтобы вернуть всё в исходное состояние для сборки и разработки мобильного приложения.
bitchat/Localization/Base.lproj/. Добавляйте новые строки в Localizable.strings и правила множественного числа в Localizable.stringsdict.bitchatShareExtension/Localization/Base.lproj/Localizable.strings.app_info.features.offline.title) и по возможности используйте существующие.xcodebuild -project bitchat.xcodeproj -scheme "bitchat (macOS)" -Configuration Debug CODE_SIGNING_ALLOWED=NO build для компиляционной проверки любых изменений локализации.| Транспорт | Область | Интернет | Сценарий использования |
|---|
| Протокол Nostr через интернет | Географические области, заданные точностью geohash: block (7 символов) – уровень квартала; neighborhood (6 символов) – район/соседство; city (5 символов) – уровень города; province (4 символа) – штат/провинция; region (2 символа) – страна/крупный регион | Требуется (подключается к релеям Nostr) | Общение в сообществах по местоположению, местные события, региональные обсуждения |