init: 1.0.0
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user