Skip to main content

Crate threatflux_unifi_sdk

Crate threatflux_unifi_sdk 

Source
Expand description

§ThreatFlux UniFi SDK

Native Rust SDK for UDM Pro and UniFi OS device automation including firewall rules, port forwarding, VLANs, traffic management, VPN configuration, and network monitoring.

§Quick Start

use threatflux_unifi_sdk::{UnifiClient, UnifiConfig};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Connect to UDM Pro
    let config = UnifiConfig::new("192.168.1.1", "admin", "password");
    let client = UnifiClient::connect(config).await?;

    // List all networks
    let networks: Vec<serde_json::Value> = client.get("rest/networkconf").await?;
    println!("Found {} networks", networks.len());

    Ok(())
}

§Features

  • Authentication: Session-based auth with CSRF token handling
  • Multi-site: Support for multiple sites on the same controller
  • Controller detection: Automatic detection of UniFi OS vs Classic controllers
  • TLS: Handles self-signed certificates (configurable)

§Feature Flags

  • full (default): Enable all service modules
  • firewall: Firewall rules and groups management
  • vpn: WireGuard and site-to-site VPN configuration
  • traffic: Traffic rules and DPI statistics
  • clients: Client management and blocking
  • devices: Device adoption and configuration
  • dhcp: DHCP reservations and leases
  • dns: Local DNS records and filtering

Re-exports§

pub use client::ControllerType;
pub use client::UnifiClient;
pub use client::UnifiConfig;
pub use config::UnifiConnectionConfig;
pub use config::UnifiDeclarativeConfig;
pub use config::load_config;
pub use error::ApiResponse;
pub use error::ApiResponseMeta;
pub use error::Result;
pub use error::UnifiError;
pub use models::Backup;
pub use models::BackupSettings;
pub use models::Client;
pub use models::ClientGroup;
pub use models::ClientStats;
pub use models::Device;
pub use models::DhcpLease;
pub use models::DhcpReservation;
pub use models::DnsRecord;
pub use models::FirewallGroup;
pub use models::FirewallRule;
pub use models::Network;
pub use models::PortForward;
pub use models::RouteTableEntry;
pub use models::Site;
pub use models::SiteStats;
pub use models::SiteVpn;
pub use models::StaticRoute;
pub use models::SystemInfo;
pub use models::TrafficRule;
pub use models::WireGuardPeer;
pub use models::WireGuardServer;
pub use services::BackupService;
pub use services::ClientService;
pub use services::DeviceService;
pub use services::DhcpService;
pub use services::DnsService;
pub use services::FirewallService;
pub use services::NetworkService;
pub use services::PortForwardService;
pub use services::RoutingService;
pub use services::SiteService;
pub use services::TrafficService;
pub use services::VpnService;
pub use sync::SyncAction;
pub use sync::SyncChange;
pub use sync::SyncOptions;
pub use sync::SyncPlan;
pub use sync::SyncReport;
pub use types::*;

Modules§

client
UniFi controller client implementation.
config
Declarative configuration support.
error
Error types for the UniFi SDK.
models
Data models for UniFi API resources.
services
Service modules for interacting with UniFi API resources.
sync
Declarative sync engine for UniFi configuration.
types
Common types used throughout the UniFi SDK.