cloudpub-sdk

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<()> {
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?;
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(())
}
API Reference
Основные типы
Connection
Основной клиент для взаимодействия с CloudPub.
Endpoint
Представляет опубликованный сервис с информацией о доступе.
Protocol
Enum с поддерживаемыми протоколами: Http, Https, Tcp, Udp, OneC, WebDav, Minecraft.
Auth
Типы авторизации: None, Basic.
Примеры
Пример использования доступны в директории examples/:
cargo run --example example
Лицензия
Apache License 2.0
Поддержка