core

package module
v2.24.3+incompatible Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2017 License: MIT Imports: 17 Imported by: 0

README

Project V2Ray

Build Status codecov.io Go Report GoDoc codebeat

V2Ray 是一个模块化的代理软件包,它的目标是提供常用的代理软件模块,简化网络代理软件的开发。

官方网站

V2Ray provides building blocks for network proxy development. Read our Wiki for more information.

License

The MIT License (MIT)

Documentation

Overview

Package core provides an entry point to use V2Ray core functionalities.

V2Ray makes it possible to accept incoming network connections with certain protocol, process the data, and send them through another connection with the same or a difference protocol on demand.

It may be configured to work with multiple protocols at the same time, and uses the internal router to tunnel through different inbound and outbound connections.

Index

Constants

This section is empty.

Variables

View Source
var ConfigFormat_name = map[int32]string{
	0: "Protobuf",
	1: "JSON",
}
View Source
var ConfigFormat_value = map[string]int32{
	"Protobuf": 0,
	"JSON":     1,
}

Functions

func PrintVersion added in v0.9.1

func PrintVersion()

PrintVersion prints current version into console.

func RegisterConfigLoader

func RegisterConfigLoader(format ConfigFormat, loader ConfigLoader) error

RegisterConfigLoader add a new ConfigLoader.

func Version

func Version() string

Version returns V2Ray's version as a string, in the form of "x.y.z" where x, y and z are numbers. ".z" part may be omitted in regular releases.

Types

type Config

type Config struct {
	// Inbound handler configurations. Must have at least one item.
	Inbound []*v2ray_core_app_proxyman.InboundHandlerConfig `protobuf:"bytes,1,rep,name=inbound" json:"inbound,omitempty"`
	// Outbound handler configurations. Must have at least one item. The first item is used as default for routing.
	Outbound []*v2ray_core_app_proxyman.OutboundHandlerConfig `protobuf:"bytes,2,rep,name=outbound" json:"outbound,omitempty"`
	// App configuration. Must be one in the app directory.
	App []*v2ray_core_common_serial.TypedMessage `protobuf:"bytes,4,rep,name=app" json:"app,omitempty"`
	// Transport settings.
	Transport *v2ray_core_transport.Config `protobuf:"bytes,5,opt,name=transport" json:"transport,omitempty"`
}

Master config of V2Ray. V2Ray Core takes this config as input and functions accordingly.

func LoadConfig

func LoadConfig(format ConfigFormat, input io.Reader) (*Config, error)

LoadConfig loads config with given format from given source.

func (*Config) Descriptor

func (*Config) Descriptor() ([]byte, []int)

func (*Config) GetApp

func (*Config) GetInbound

func (*Config) GetOutbound

func (*Config) GetTransport

func (m *Config) GetTransport() *v2ray_core_transport.Config

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) Reset

func (m *Config) Reset()

func (*Config) String

func (m *Config) String() string

type ConfigFormat

type ConfigFormat int32

Configuration serialization format.

const (
	ConfigFormat_Protobuf ConfigFormat = 0
	ConfigFormat_JSON     ConfigFormat = 1
)

func (ConfigFormat) EnumDescriptor

func (ConfigFormat) EnumDescriptor() ([]byte, []int)

func (ConfigFormat) String

func (x ConfigFormat) String() string

type ConfigLoader

type ConfigLoader func(input io.Reader) (*Config, error)

ConfigLoader is an utility to load V2Ray config from external source.

type Server

type Server interface {
	// Start starts the V2Ray server, and return any error during the process.
	// In the case of any errors, the state of the server is unpredicatable.
	Start() error

	// Close closes the V2Ray server. All inbound and outbound connections will be closed immediately.
	Close()
}

Server is an instance of V2Ray. At any time, there must be at most one Server instance running.

func New

func New(config *Config) (Server, error)

New creates a new V2Ray server with given config.

Directories

Path Synopsis
app
Package common contains common utilities that are shared among other packages.
Package common contains common utilities that are shared among other packages.
Package proxy contains all proxies used by V2Ray.
Package proxy contains all proxies used by V2Ray.
testing
Package tools contains utilities that is not directly linked into V2Ray binary.
Package tools contains utilities that is not directly linked into V2Ray binary.

Jump to

Keyboard shortcuts

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