Skip to main content

Crate threexui_rs

Crate threexui_rs 

Source
Expand description

§threexui-rs

Async Rust SDK for the 3x-ui panel API.

This crate targets 3x-ui v2.9.3. The library version mirrors the panel version — threexui-rs v2.9.3 is compatible with 3x-ui v2.9.3.

§Quick start

use threexui_rs::{Client, ClientConfig};

#[tokio::main]
async fn main() -> threexui_rs::Result<()> {
    let config = ClientConfig::builder()
        .host("192.168.1.1")
        .port(2053)
        .build()?;

    let client = Client::new(config);
    client.login("admin", "admin123").await?;

    let inbounds = client.inbounds().list().await?;
    println!("Found {} inbounds", inbounds.len());

    client.logout().await?;
    Ok(())
}

Re-exports§

pub use client::Client;
pub use config::ClientConfig;
pub use error::Error;
pub use error::Result;
pub use models::inbound::ClientTraffic;
pub use models::inbound::Inbound;
pub use models::inbound::InboundClient;
pub use models::inbound::Protocol;
pub use models::server::AppStats;
pub use models::server::CpuHistoryPoint;
pub use models::server::EchCert;
pub use models::server::Mldsa65Keys;
pub use models::server::Mlkem768Keys;
pub use models::server::NetIO;
pub use models::server::NetTraffic;
pub use models::server::PublicIP;
pub use models::server::ResourceStat;
pub use models::server::ServerStatus;
pub use models::server::UuidResponse;
pub use models::server::VlessAuth;
pub use models::server::VlessEncResult;
pub use models::server::X25519Cert;
pub use models::server::XrayState;
pub use models::settings::AllSetting;
pub use models::xray::NordAction;
pub use models::xray::OutboundTraffic;
pub use models::xray::WarpAction;
pub use models::xray::XraySetting;
pub use models::custom_geo::CreateCustomGeo;
pub use models::custom_geo::CustomGeoAliases;
pub use models::custom_geo::CustomGeoResource;

Modules§

api
client
config
error
models