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 modulesfirewall: Firewall rules and groups managementvpn: WireGuard and site-to-site VPN configurationtraffic: Traffic rules and DPI statisticsclients: Client management and blockingdevices: Device adoption and configurationdhcp: DHCP reservations and leasesdns: 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.