cloudpub-common
Общая библиотека для компонентов CloudPub - платформы безопасной публикации локальных сервисов.
О библиотеке
cloudpub-common
содержит общий код, используемый клиентом (cloudpub-client
), сервером (cloudpub-server
) и графическим интерфейсом (cloudpub-gui
). Библиотека предоставляет базовую функциональность для работы с протоколами, сетевым взаимодействием, шифрованием и логированием.
Основные компоненты
Безопасность и шифрование
- TLS/SSL поддержка: Реализация через
rustls
с нативными сертификатами - Управление сертификатами: Парсинг X.509, работа с P12/PFX файлами
- Прокси поддержка: HTTP и SOCKS5 прокси с аутентификацией
Сетевое взаимодействие
- WebSocket протокол: Асинхронная работа через
tokio-tungstenite
- Протокол сообщений: Protobuf-based коммуникация между компонентами
- Управление соединениями: Пулы соединений, переподключения, таймауты
Логирование и трассировка
- Структурированное логирование: На базе
tracing
иtracing-subscriber
- Ротация логов: Автоматическая ротация файлов логов
- Panic обработка: Перехват и логирование паник с backtrace
Использование
Добавление зависимости
[]
= { = "2.4.2", = ["rustls"] }
Примеры использования
Инициализация логирования
use logging;
async
Работа с конфигурацией
use Config;
let config = load?;
println!;
println!;
Создание защищенного соединения
use tls;
let tls_config = create_client_config?;
let connector = from;
Локализация
use i18n;
let message = t!;
println!;
Архитектура
Модули
protocol
- Определение протокола обмена сообщениямиtransport
- Транспортный уровень (WebSocket, Unix sockets)tls
- TLS/SSL функциональностьconfig
- Управление конфигурациейlogging
- Система логированияi18n
- Интернационализацияutils
- Вспомогательные утилиты
Протокол сообщений
Библиотека использует Protocol Buffers для определения сообщений:
message Message {
oneof payload {
PublishRequest publish = 1;
PublishResponse response = 2;
Data data = 3;
Control control = 4;
}
}
Зависимости
Основные
tokio
- Асинхронная runtimebytes
- Эффективная работа с байтовыми буферамиfutures
- Асинхронные примитивыtracing
- Структурированное логирование
Сетевые
tokio-tungstenite
- WebSocket клиент/серверasync-http-proxy
- HTTP прокси поддержкаasync-socks5
- SOCKS5 прокси поддержка
Безопасность (опционально)
rustls
- TLS имплементация на Rustrustls-native-certs
- Системные сертификатыx509-parser
- Парсинг X.509 сертификатовp12
- Работа с PKCS#12 файлами
Сборка
# Сборка с базовыми возможностями
# Сборка с TLS поддержкой
# Сборка с полной функциональностью
Тестирование
Версионирование
Библиотека следует семантическому версионированию (SemVer). Текущая версия: 2.4.2
Лицензия
Apache License 2.0
Вклад в проект
Приветствуются pull requests. Для крупных изменений сначала откройте issue для обсуждения.
Поддержка
- GitHub Issues
- Email: support@cloudpub.ru