adapter

package
v1.1.3 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2025 License: GPL-3.0 Imports: 9 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 {
	SiteName       string       // 站点名称
	Servers        []*node.Node // 服务器列表
	UserInfo       User         // 用户信息
	ClientTemplate string       // 客户端配置模板
	OutputFormat   string       // 输出格式,默认是 base64
	SubscribeName  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
}

func (*Client) Build

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

type Option

type Option func(*Adapter)

func WithOutputFormat

func WithOutputFormat(format string) Option

WithOutputFormat 设置输出格式

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

	// Security Options
	Security          string
	SNI               string // Server Name Indication for TLS
	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
	RealityPrivateKey string // Reality private key for authentication
	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

	// 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
	UDPRelayMode         string // UDP relay mode (e.g., "full", "partial")
	CongestionController string // Congestion controller (e.g., "cubic", "bbr")

	// AnyTLS
	PaddingScheme string

	// Mieru
	Multiplex 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'
	EncryptionTicket        string // encryption ticket
	EncryptionServerPadding string // encryption server padding
	EncryptionPrivateKey    string // encryption private key
	EncryptionClientPadding string // encryption client padding
	EncryptionPassword      string // encryption password

	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 {
	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