v4.19.1+incompatible Latest Latest

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

Go to latest
Published: Jun 3, 2019 License: MIT Imports: 13 Imported by: 602



Package vmess contains the implementation of VMess protocol and transportation.

VMess contains both inbound and outbound connections. VMess inbound is usually used on servers together with 'freedom' to talk to final destination, while VMess outbound is usually used on clients with 'socks' for proxying.



This section is empty.


This section is empty.


This section is empty.


type Account

type Account struct {
	// ID of the account, in the form of a UUID, e.g., "66ad4540-b58c-4ad2-9926-ea63445a9b57".
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Number of alternative IDs. Client and server must share the same number.
	AlterId uint32 `protobuf:"varint,2,opt,name=alter_id,json=alterId,proto3" json:"alter_id,omitempty"`
	// Security settings. Only applies to client side.
	SecuritySettings     *protocol.SecurityConfig `protobuf:"bytes,3,opt,name=security_settings,json=securitySettings,proto3" json:"security_settings,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`

func (*Account) AsAccount

func (a *Account) AsAccount() (protocol.Account, error)

AsAccount implements protocol.Account.

func (*Account) Descriptor

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

func (*Account) GetAlterId

func (m *Account) GetAlterId() uint32

func (*Account) GetId

func (m *Account) GetId() string

func (*Account) GetSecuritySettings

func (m *Account) GetSecuritySettings() *protocol.SecurityConfig

func (*Account) ProtoMessage

func (*Account) ProtoMessage()

func (*Account) Reset

func (m *Account) Reset()

func (*Account) String

func (m *Account) String() string

func (*Account) XXX_DiscardUnknown

func (m *Account) XXX_DiscardUnknown()

func (*Account) XXX_Marshal

func (m *Account) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Account) XXX_Merge

func (m *Account) XXX_Merge(src proto.Message)

func (*Account) XXX_Size

func (m *Account) XXX_Size() int

func (*Account) XXX_Unmarshal

func (m *Account) XXX_Unmarshal(b []byte) error

type MemoryAccount

type MemoryAccount struct {
	// ID is the main ID of the account.
	ID *protocol.ID
	// AlterIDs are the alternative IDs of the account.
	AlterIDs []*protocol.ID
	// Security type of the account. Used for client connections.
	Security protocol.SecurityType

MemoryAccount is an in-memory from of VMess account.

func (*MemoryAccount) AnyValidID

func (a *MemoryAccount) AnyValidID() *protocol.ID

AnyValidID returns an ID that is either the main ID or one of the alternative IDs if any.

func (*MemoryAccount) Equals

func (a *MemoryAccount) Equals(account protocol.Account) bool

Equals implements protocol.Account.

type TimedUserValidator

type TimedUserValidator struct {
	// contains filtered or unexported fields

TimedUserValidator is a user Validator based on time.

func NewTimedUserValidator

func NewTimedUserValidator(hasher protocol.IDHash) *TimedUserValidator

NewTimedUserValidator creates a new TimedUserValidator.

func (*TimedUserValidator) Add

func (*TimedUserValidator) Close

func (v *TimedUserValidator) Close() error

Close implements common.Closable.

func (*TimedUserValidator) Get

func (*TimedUserValidator) Remove

func (v *TimedUserValidator) Remove(email string) bool


Path Synopsis

Jump to

Keyboard shortcuts

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