libsubconverter/models/proxy_node/
anytls.rs

1use serde::{Deserialize, Serialize};
2use std::collections::HashSet;
3
4/// Represents the AnyTLS proxy details
5#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6#[serde(rename_all = "kebab-case")]
7pub struct AnyTlsProxy {
8    pub password: String,
9    #[serde(skip_serializing_if = "Option::is_none")]
10    pub alpn: Option<HashSet<String>>, // Using HashSet for uniqueness, similar to vless alpn
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub sni: Option<String>,
13    #[serde(skip_serializing_if = "Option::is_none")]
14    pub skip_cert_verify: Option<bool>,
15    #[serde(skip_serializing_if = "Option::is_none")]
16    pub fingerprint: Option<String>,
17    #[serde(skip_serializing_if = "Option::is_none")]
18    pub client_fingerprint: Option<String>,
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub udp: Option<bool>,
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub idle_session_check_interval: Option<i32>,
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub idle_session_timeout: Option<i32>,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub min_idle_session: Option<i32>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub tfo: Option<bool>,
29}