core: v2ray.com/core/proxy Index | Files | Directories

package proxy

import "v2ray.com/core/proxy"

Package proxy contains all proxies used by V2Ray.

To implement an inbound or outbound proxy, one needs to do the following: 1. Implement the interface(s) below. 2. Register a config creator through common.RegisterConfig.

Index

Package Files

proxy.go

type GetInbound Uses

type GetInbound interface {
    GetInbound() Inbound
}

type GetOutbound Uses

type GetOutbound interface {
    GetOutbound() Outbound
}

type Inbound Uses

type Inbound interface {
    // Network returns a list of networks that this inbound supports. Connections with not-supported networks will not be passed into Process().
    Network() []net.Network

    // Process processes a connection of given network. If necessary, the Inbound can dispatch the connection to an Outbound.
    Process(context.Context, net.Network, internet.Connection, routing.Dispatcher) error
}

An Inbound processes inbound connections.

type Outbound Uses

type Outbound interface {
    // Process processes the given connection. The given dialer may be used to dial a system outbound connection.
    Process(context.Context, *transport.Link, internet.Dialer) error
}

An Outbound process outbound connections.

type UserManager Uses

type UserManager interface {
    // AddUser adds a new user.
    AddUser(context.Context, *protocol.MemoryUser) error

    // RemoveUser removes a user by email.
    RemoveUser(context.Context, string) error
}

UserManager is the interface for Inbounds and Outbounds that can manage their users.

Directories

PathSynopsis
blackhole
dns
dokodemo
freedom
http
mtproto
shadowsocksPackage shadowsocks provides compatible functionality to Shadowsocks.
socksPackage socks provides implements of Socks protocol 4, 4a and 5.
vmessPackage vmess contains the implementation of VMess protocol and transportation.
vmess/encoding
vmess/inbound
vmess/outbound

Package proxy imports 6 packages (graph) and is imported by 45 packages. Updated 2019-03-02. Refresh now. Tools for package owners.