adapter

package
v1.14.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 22, 2026 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func StructToMap

func StructToMap(obj interface{}) map[string]interface{}

Types

type Adapter

type Adapter struct {
	Type           string            // 协议类型
	SiteName       string            // 站点名称
	Servers        []*node.Node      // 服务器列表
	UserInfo       User              // 用户信息
	ClientTemplate string            // 客户端配置模板
	OutputFormat   string            // 输出格式,默认是 base64
	SubscribeName  string            // 订阅名称
	Params         map[string]string // 其他参数
}

func NewAdapter

func NewAdapter(tpl string, opts ...Option) *Adapter

func (*Adapter) Client

func (adapter *Adapter) Client() (*Client, error)

func (*Adapter) Proxies

func (adapter *Adapter) Proxies(servers []*node.Node) ([]Proxy, error)

type Client

type Client struct {
	SiteName       string            // Name of the site
	SubscribeName  string            // Name of the subscription
	ClientTemplate string            // Template for the entire client configuration
	OutputFormat   string            // json, yaml, etc.
	Proxies        []Proxy           // List of proxy configurations
	UserInfo       User              // User information
	Params         map[string]string // Additional parameters
}

func (*Client) Build

func (c *Client) Build() ([]byte, error)

type Option

type Option func(*Adapter)

func WithOutputFormat

func WithOutputFormat(format string) Option

WithOutputFormat 设置输出格式

func WithParams added in v1.2.4

func WithParams(params map[string]string) Option

func WithServers

func WithServers(servers []*node.Node) Option

WithServers 设置服务器列表

func WithSiteName

func WithSiteName(name string) Option

WithSiteName 设置站点名称

func WithSubscribeName

func WithSubscribeName(name string) Option

WithSubscribeName 设置订阅名称

func WithUserInfo

func WithUserInfo(user User) Option

WithUserInfo 设置用户信息

type Proxy

type Proxy struct {
	Sort    int
	Name    string
	Server  string
	Port    uint16
	Type    string
	Tags    []string
	Version int
	Mode    string
	Network string

	// Security Options
	Security          string
	SNI               string // Server Name Indication for TLS
	ALPN              []string
	AllowInsecure     bool   // Allow insecure connections (skip certificate verification)
	Fingerprint       string // Client fingerprint for TLS connections
	RealityServerAddr string // Reality server address
	RealityServerPort int    // Reality server port
	RealityPublicKey  string // Reality public key for authentication
	RealityShortId    string // Reality short ID for authentication
	// Transport Options
	Transport   string // Transport protocol (e.g., ws, http, grpc)
	Host        string // For WebSocket/HTTP/HTTPS
	Path        string // For HTTP/HTTPS
	ServiceName string // For gRPC
	// Shadowsocks Options
	Method              string
	ServerKey           string // For Shadowsocks 2022
	Plugin              string
	PluginOptions       any
	UoT                 bool // UDP over TCP
	UoTVersion          int  // UoT version (1 or 2)
	AcceptProxyProtocol bool

	// Vmess/Vless/Trojan Options
	Flow string // Flow for Vmess/Vless/Trojan
	// Hysteria2 Options
	HopPorts     string // Comma-separated list of hop ports
	HopInterval  int    // Interval for hop ports in seconds
	ObfsPassword string // Obfuscation password for Hysteria2
	UpMbps       int    // Upload speed in Mbps
	DownMbps     int    // Download speed in Mbps

	// Tuic Options
	DisableSNI            bool // Disable SNI
	ReduceRtt             bool // Reduce RTT
	Heartbeat             int
	UDPRelayMode          string // UDP relay mode (e.g., "full", "partial")
	CongestionController  string // Congestion controller (e.g., "cubic", "bbr")
	QUICCongestionControl string

	// AnyTLS
	PaddingScheme string

	// Protocol-independent multiplexing and Mieru options.
	Multiplex           string
	TrafficPattern      string
	UserHintIsMandatory bool

	// ShadowsocksR and compatible obfuscation options.
	Obfs          string
	SSRProtocol   string
	ProtocolParam string
	ObfsParam     string
	ObfsHost      string
	ObfsPath      string

	// Vless
	XhttpMode  string // xhttp mode
	XhttpExtra string // xhttp path

	// encryption
	Encryption              string // encryption,'none', 'mlkem768x25519plus'
	EncryptionMode          string // encryption mode,'native', 'xorpub', 'random'
	EncryptionRtt           string // encryption rtt,'0rtt', '1rtt'
	EncryptionClientPadding string // encryption client padding
	EncryptionPassword      string // encryption password

	// ECH
	EchEnable     bool   // ECH enable
	EchServerName string // ECH SNI

	Ratio           float64 // Traffic ratio, default is 1
	CertMode        string  // Certificate mode, `none`|`http`|`dns`|`self`
	CertDNSProvider string  // DNS provider for certificate
	CertDNSEnv      string  // Environment for DNS provider
}

type User

type User struct {
	ID           int64
	Password     string
	ExpiredAt    time.Time
	Download     int64
	Upload       int64
	Traffic      int64
	SubscribeURL string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL