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