package proxy // Adapter represents a proxy adapter type Adapter struct { Proxies []Proxy Group []Group Rules []string Region []string } // Proxy represents a proxy server type Proxy struct { Name string Server string Port int Protocol string Country string Option any } // Group represents a group of proxies type Group struct { Name string Type GroupType Proxies []string URL string Interval int } type GroupType string const ( GroupTypeSelect GroupType = "select" GroupTypeURLTest GroupType = "url-test" GroupTypeFallback GroupType = "fallback" ) // Shadowsocks represents a Shadowsocks proxy configuration type Shadowsocks struct { Port int `json:"port"` Method string `json:"method"` ServerKey string `json:"server_key"` } // Vless represents a Vless proxy configuration type Vless struct { Port int `json:"port"` Flow string `json:"flow"` Transport string `json:"transport"` TransportConfig TransportConfig `json:"transport_config"` Security string `json:"security"` SecurityConfig SecurityConfig `json:"security_config"` } // Vmess represents a Vmess proxy configuration type Vmess struct { Port int `json:"port"` Flow string `json:"flow"` Transport string `json:"transport"` TransportConfig TransportConfig `json:"transport_config"` Security string `json:"security"` SecurityConfig SecurityConfig `json:"security_config"` } // Trojan represents a Trojan proxy configuration type Trojan struct { Port int `json:"port"` Flow string `json:"flow"` Transport string `json:"transport"` TransportConfig TransportConfig `json:"transport_config"` Security string `json:"security"` SecurityConfig SecurityConfig `json:"security_config"` } // Hysteria2 represents a Hysteria2 proxy configuration type Hysteria2 struct { Port int `json:"port"` HopPorts string `json:"hop_ports"` HopInterval int `json:"hop_interval"` ObfsPassword string `json:"obfs_password"` SecurityConfig SecurityConfig `json:"security_config"` } // Tuic represents a Tuic proxy configuration type Tuic struct { Port int `json:"port"` SecurityConfig SecurityConfig `json:"security_config"` } // TransportConfig represents the transport configuration for a proxy type TransportConfig struct { Path string `json:"path,omitempty"` // ws/httpupgrade Host string `json:"host,omitempty"` ServiceName string `json:"service_name"` // grpc } // SecurityConfig represents the security configuration for a proxy type SecurityConfig struct { SNI string `json:"sni"` AllowInsecure bool `json:"allow_insecure"` Fingerprint string `json:"fingerprint"` RealityServerAddr string `json:"reality_server_addr"` RealityServerPort int `json:"reality_server_port"` RealityPrivateKey string `json:"reality_private_key"` RealityPublicKey string `json:"reality_public_key"` RealityShortId string `json:"reality_short_id"` } // Relay represents a relay configuration type Relay struct { RelayHost string DispatchMode string Prefix string }