| Crates.io | cloudpub-sdk |
| lib.rs | cloudpub-sdk |
| version | 3.0.2 |
| created_at | 2025-09-20 03:36:13.178534+00 |
| updated_at | 2025-12-24 08:27:07.385915+00 |
| description | Rust SDK for CloudPub - A secure tunnel and service publishing platform |
| homepage | https://github.com/ermak-dev/cloudpub |
| repository | https://github.com/ermak-dev/cloudpub |
| max_upload_size | |
| id | 1847371 |
| size | 196,987 |
Rust SDK для CloudPub - платформы безопасной публикации локальных сервисов в интернете.
cloudpub-sdk предоставляет программный интерфейс для интеграции функциональности CloudPub в ваши Rust приложения. SDK позволяет публиковать локальные сервисы, управлять туннелями и контролировать доступ программным способом.
Добавьте в Cargo.toml:
[dependencies]
cloudpub-sdk = "2"
cloudpub-common = "2"
anyhow = "1"
tokio = "1
use anyhow::Result;
use cloudpub_common::protocol::{Auth, Protocol};
use cloudpub_sdk::Connection;
use std::path::Path;
#[tokio::main]
async fn main() -> Result<()> {
// Создание подключения с использованием builder pattern
let mut conn = Connection::builder()
.config_path(Path::new("/tmp/cloudpub.toml")) // Путь к файлу конфигурации
.log_level("info") // Уровень логирования
.verbose(true) // Вывод отладочной информации
.credentials("user@example.com", "password") // Учетные данные
.timeout_secs(30) // Таймаут операций
.build()
.await?;
// Публикация HTTP сервиса
let endpoint = conn
.publish(
Protocol::Http, // Протокол
"localhost:8080".to_string(), // Локальный адрес
Some("Мой веб-сервис".to_string()), // Имя сервиса
Some(Auth::None), // Без авторизации
)
.await?;
println!("Сервис опубликован: {}", endpoint.as_url());
println!("GUID сервиса: {}", endpoint.guid);
// Получение списка всех сервисов
let services = conn.ls().await?;
for service in &services {
println!("- {}: {}", service.guid, service.as_url());
}
// Остановка сервиса
conn.stop(endpoint.guid.clone()).await?;
println!("Сервис остановлен");
// Запуск сервиса
conn.start(endpoint.guid.clone()).await?;
println!("Сервис запущен");
// Удаление сервиса
conn.unpublish(endpoint.guid.clone()).await?;
println!("Сервис удален");
// Очистка всех сервисов
conn.clean().await?;
println!("Все сервисы удалены");
Ok(())
}
ConnectionОсновной клиент для взаимодействия с CloudPub.
EndpointПредставляет опубликованный сервис с информацией о доступе.
ProtocolEnum с поддерживаемыми протоколами: Http, Https, Tcp, Udp, OneC, WebDav, Minecraft.
AuthТипы авторизации: None, Basic.
Пример использования доступны в директории examples/:
# Запуск примера
cargo run --example example
Apache License 2.0