option

package
v1.0.0-beta.9 Latest Latest
Warning

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

Go to latest
Published: May 6, 2024 License: GPL-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultSubscriptionUpdateInterval = 1 * time.Hour
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ExtraGroup

type ExtraGroup struct {
	Tag            string                          `json:"tag,omitempty"`
	Type           string                          `json:"type,omitempty"`
	Filter         option.Listable[string]         `json:"filter,omitempty"`
	Exclude        option.Listable[string]         `json:"exclude,omitempty"`
	CustomSelector *option.SelectorOutboundOptions `json:"custom_selector,omitempty"`
	CustomURLTest  *option.URLTestOutboundOptions  `json:"custom_urltest,omitempty"`
}

type Options

type Options _Options

func (*Options) UnmarshalJSON

func (o *Options) UnmarshalJSON(content []byte) error

type OutboundProcessOptions

type OutboundProcessOptions struct {
	Filter           option.Listable[string]           `json:"filter,omitempty"`
	Exclude          option.Listable[string]           `json:"exclude,omitempty"`
	FilterType       option.Listable[string]           `json:"filter_type,omitempty"`
	ExcludeType      option.Listable[string]           `json:"exclude_type,omitempty"`
	Invert           bool                              `json:"invert,omitempty"`
	Remove           bool                              `json:"remove,omitempty"`
	Rename           *badjson.TypedMap[string, string] `json:"rename,omitempty"`
	RemoveEmoji      bool                              `json:"remove_emoji,omitempty"`
	RewriteMultiplex *option.OutboundMultiplexOptions  `json:"rewrite_multiplex,omitempty"`
}

type Profile

type Profile struct {
	Name                 string                            `json:"name,omitempty"`
	Template             string                            `json:"template,omitempty"`
	TemplateForPlatform  *badjson.TypedMap[string, string] `json:"template_for_platform,omitempty"`
	TemplateForUserAgent *badjson.TypedMap[string, string] `json:"template_for_user_agent,omitempty"`
	Outbound             option.Listable[string]           `json:"outbound,omitempty"`
	Subscription         option.Listable[string]           `json:"subscription,omitempty"`
}

type Subscription

type Subscription struct {
	Name             string                                  `json:"name,omitempty"`
	URL              string                                  `json:"url,omitempty"`
	UserAgent        string                                  `json:"user_agent,omitempty"`
	UpdateInterval   option.Duration                         `json:"update_interval,omitempty"`
	Process          option.Listable[OutboundProcessOptions] `json:"process,omitempty"`
	DeDuplication    bool                                    `json:"deduplication,omitempty"`
	GenerateSelector bool                                    `json:"generate_selector,omitempty"`
	GenerateURLTest  bool                                    `json:"generate_urltest,omitempty"`
	URLTestTagSuffix string                                  `json:"urltest_suffix,omitempty"`
	CustomSelector   *option.SelectorOutboundOptions         `json:"custom_selector,omitempty"`
	CustomURLTest    *option.URLTestOutboundOptions          `json:"custom_urltest,omitempty"`
}

type Template

type Template struct {
	Name string `json:"name,omitempty"`

	Log                  *option.LogOptions    `json:"log,omitempty"`
	DomainStrategy       option.DomainStrategy `json:"domain_strategy,omitempty"`
	DisableTrafficBypass bool                  `json:"disable_traffic_bypass,omitempty"`
	DisableRuleSet       bool                  `json:"disable_rule_set,omitempty"`
	RemoteResolve        bool                  `json:"remote_resolve,omitempty"`

	// DNS
	DNSDefault     string           `json:"dns_default,omitempty"`
	DNSLocal       string           `json:"dns_local,omitempty"`
	EnableFakeIP   bool             `json:"enable_fakeip,omitempty"`
	DisableDNSLeak bool             `json:"disable_dns_leak,omitempty"`
	PreDNSRules    []option.DNSRule `json:"pre_dns_rules,omitempty"`
	CustomDNSRules []option.DNSRule `json:"custom_dns_rules,omitempty"`

	// Inbound
	DisableTUN         bool                                          `json:"disable_tun,omitempty"`
	DisableSystemProxy bool                                          `json:"disable_system_proxy,omitempty"`
	CustomTUN          *TypedMessage[option.TunInboundOptions]       `json:"custom_tun,omitempty"`
	CustomMixed        *TypedMessage[option.HTTPMixedInboundOptions] `json:"custom_mixed,omitempty"`

	// Outbound
	ExtraGroups           []ExtraGroup                    `json:"extra_groups,omitempty"`
	GenerateGlobalURLTest bool                            `json:"generate_global_urltest,omitempty"`
	DirectTag             string                          `json:"direct_tag,omitempty"`
	DefaultTag            string                          `json:"default_tag,omitempty"`
	URLTestTag            string                          `json:"urltest_tag,omitempty"`
	CustomDirect          *option.DirectOutboundOptions   `json:"custom_direct,omitempty"`
	CustomSelector        *option.SelectorOutboundOptions `json:"custom_selector,omitempty"`
	CustomURLTest         *option.URLTestOutboundOptions  `json:"custom_urltest,omitempty"`

	// Route
	DisableDefaultRules           bool                                            `json:"disable_default_rules,omitempty"`
	PreRules                      []option.Rule                                   `json:"pre_rules,omitempty"`
	CustomRules                   []option.Rule                                   `json:"custom_rules,omitempty"`
	CustomRulesForVersionLessThan badjson.TypedMap[semver.Version, []option.Rule] `json:"custom_rules_for_version_less_than,omitempty"`
	EnableJSDelivr                bool                                            `json:"enable_jsdelivr,omitempty"`
	CustomGeoIP                   *option.GeoIPOptions                            `json:"custom_geoip,omitempty"`
	CustomGeosite                 *option.GeositeOptions                          `json:"custom_geosite,omitempty"`
	CustomRuleSet                 []option.RuleSet                                `json:"custom_rule_set,omitempty"`
	PostCustomRuleSet             []option.RuleSet                                `json:"post_custom_rule_set,omitempty"`

	//  Experimental
	DisableCacheFile          bool `json:"disable_cache_file,omitempty"`
	DisableExternalController bool `json:"disable_external_controller,omitempty"`
	DisableClashMode          bool `json:"disable_clash_mode,omitempty"`

	ClashModeLeak   string                                `json:"clash_mode_leak,omitempty"`
	ClashModeRule   string                                `json:"clash_mode_rule,omitempty"`
	ClashModeGlobal string                                `json:"clash_mode_global,omitempty"`
	ClashModeDirect string                                `json:"clash_mode_direct,omitempty"`
	CustomClashAPI  *TypedMessage[option.ClashAPIOptions] `json:"custom_clash_api,omitempty"`

	// Debug
	PProfListen string             `json:"pprof_listen,omitempty"`
	MemoryLimit option.MemoryBytes `json:"memory_limit,omitempty"`
}

func (Template) DisableIPv6

func (t Template) DisableIPv6() bool

type TypedMessage

type TypedMessage[T any] struct {
	Message json.RawMessage
	Value   T
}

func (*TypedMessage[T]) MarshalJSON

func (m *TypedMessage[T]) MarshalJSON() ([]byte, error)

func (*TypedMessage[T]) UnmarshalJSON

func (m *TypedMessage[T]) UnmarshalJSON(bytes []byte) error

type User

type User struct {
	Name           string                  `json:"name,omitempty"`
	Password       string                  `json:"password,omitempty"`
	Profile        option.Listable[string] `json:"profile,omitempty"`
	DefaultProfile string                  `json:"default_profile,omitempty"`
}

Jump to

Keyboard shortcuts

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