Documentation ¶
Overview ¶
Package vless contains the implementation of VLess protocol and transportation.
VLess contains both inbound and outbound connections. VLess inbound is usually used on servers together with 'freedom' to talk to final destination, while VLess outbound is usually used on clients with 'socks' for proxying.
Index ¶
- Constants
- Variables
- type Account
- func (a *Account) AsAccount() (protocol.Account, error)
- func (*Account) Descriptor() ([]byte, []int)deprecated
- func (x *Account) GetEncryption() string
- func (x *Account) GetFlow() string
- func (x *Account) GetId() string
- func (*Account) ProtoMessage()
- func (x *Account) ProtoReflect() protoreflect.Message
- func (x *Account) Reset()
- func (x *Account) String() string
- type MemoryAccount
- type MemoryValidator
- func (v *MemoryValidator) Add(u *protocol.MemoryUser) error
- func (v *MemoryValidator) Del(e string) error
- func (v *MemoryValidator) Get(id uuid.UUID) *protocol.MemoryUser
- func (v *MemoryValidator) GetAll() []*protocol.MemoryUser
- func (v *MemoryValidator) GetByEmail(email string) *protocol.MemoryUser
- func (v *MemoryValidator) GetCount() int64
- type Validator
Constants ¶
View Source
const (
XRV = "xtls-rprx-vision"
)
Variables ¶
View Source
var File_proxy_vless_account_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
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"` // Flow settings. May be "xtls-rprx-vision". Flow string `protobuf:"bytes,2,opt,name=flow,proto3" json:"flow,omitempty"` // Encryption settings. Only applies to client side, and only accepts "none" for now. Encryption string `protobuf:"bytes,3,opt,name=encryption,proto3" json:"encryption,omitempty"` // contains filtered or unexported fields }
func (*Account) Descriptor
deprecated
func (*Account) GetEncryption ¶
func (*Account) ProtoMessage ¶
func (*Account) ProtoMessage()
func (*Account) ProtoReflect ¶
func (x *Account) ProtoReflect() protoreflect.Message
type MemoryAccount ¶
type MemoryAccount struct { // ID of the account. ID *protocol.ID // Flow of the account. May be "xtls-rprx-vision". Flow string // Encryption of the account. Used for client connections, and only accepts "none" for now. Encryption string }
MemoryAccount is an in-memory form of VLess account.
func (*MemoryAccount) Equals ¶
func (a *MemoryAccount) Equals(account protocol.Account) bool
Equals implements protocol.Account.Equals().
func (*MemoryAccount) ToProto ¶
func (a *MemoryAccount) ToProto() proto.Message
type MemoryValidator ¶
type MemoryValidator struct {
// contains filtered or unexported fields
}
MemoryValidator stores valid VLESS users.
func (*MemoryValidator) Add ¶
func (v *MemoryValidator) Add(u *protocol.MemoryUser) error
Add a VLESS user, Email must be empty or unique.
func (*MemoryValidator) Del ¶
func (v *MemoryValidator) Del(e string) error
Del a VLESS user with a non-empty Email.
func (*MemoryValidator) Get ¶
func (v *MemoryValidator) Get(id uuid.UUID) *protocol.MemoryUser
Get a VLESS user with UUID, nil if user doesn't exist.
func (*MemoryValidator) GetAll ¶
func (v *MemoryValidator) GetAll() []*protocol.MemoryUser
Get all users
func (*MemoryValidator) GetByEmail ¶
func (v *MemoryValidator) GetByEmail(email string) *protocol.MemoryUser
Get a VLESS user with email, nil if user doesn't exist.
type Validator ¶
type Validator interface { Get(id uuid.UUID) *protocol.MemoryUser Add(u *protocol.MemoryUser) error Del(email string) error GetByEmail(email string) *protocol.MemoryUser GetAll() []*protocol.MemoryUser GetCount() int64 }
Click to show internal directories.
Click to hide internal directories.