Proto commits in eycorsican/leaf

These 46 commits are when the Protocol Buffers files have changed:

Commit:49aa8f8
Author:eric

Added NONE loglevel to skip logger setup

The documentation is generated from this commit.

Commit:a6070a7
Author:eric
Committer:eric

Support multiple health check requests for the failover outbound

Commit:09d1a97
Author:eric

Added healthCheckWait option for failover outbound

Commit:b1ef030
Author:eric

Added healthCheckOnStart option to failover outbound

Commit:ed261b6
Author:eric
Committer:eric

Added healthCheckPrefers parameter for failover outbound

Commit:6f9d426
Author:eric

outbound/direct: allow to specify an outbound interface

Commit:8517bb3
Author:eric

outbound/amux: new parameters max-recv-bytes and max-lifetime to control connection behavior

Commit:af24da9
Author:eric
Committer:eric

outbound/shadowsocks: support customizable salt prefix Note the prefix must specify in percent-encoded form and the length must less than the used cipher key length.

Commit:1de877a
Author:eric
Committer:eric

outbound/tls: added an option to disable certificate verification

Commit:85cfa4c
Author:bdbai
Committer:eycorsican

Add http obfs outbound

Commit:a358f7e
Author:eric
Committer:eric

inbound/cat: a new inbound makes leaf act as netcat Running leaf with the following config: ```json { "inbounds": [ { "protocol": "cat", "settings": { "address": "1.1.1.1", "network": "tcp", "port": 80 }, "tag": "cat" } ], "log": { "level": "warn" }, "outbounds": [ { "protocol": "socks", "settings": { "address": "127.0.0.1", "port": 1080 }, "tag": "socks" } ] } ``` is similar to the following `nc` command: ```shell nc -X5 -x127.0.0.1:1080 1.1.1.1 80 ``` Which establishes a TCP connection to 1.1.1.1:80 via a local SOCKS5 proxy. But leaf supports sending UDP over SOCKS5 as well as other supported outbounds.

Commit:a70d98d
Author:lemos
Committer:GitHub

outbound/socks: add authentication support for socks (#356)

Commit:5fa702d
Author:eric
Committer:eric

quic: configurable ALPN

Commit:b291177
Author:eric
Committer:eric

outbound/failover: skip health checking at inactivity

Commit:09775d6
Author:eric
Committer:eric

outbound/failover: configurable health check delay

Commit:aad085f
Author:eric
Committer:eric

outbound/vmess: re-introduce

Commit:96294a6
Author:eric
Committer:eric

Added statistics manager

Commit:c3afb38
Author:eric
Committer:eric

outbound/random, outbound/rr, outbound/static: combined random and rr into static

Commit:cbef2f9
Author:eric

outbound/retry: removed

Commit:290831c
Author:eric
Committer:eric

outbound/failover: configurable health check timeout

Commit:769c48d
Author:eric
Committer:eric

outbound/failover: allows a single outbound as a last resort

Commit:ae32f7a
Author:eric
Committer:eric

inbound/trojan: accept multiple passwords

Commit:ed8b128
Author:eric

conf: support logoutput

Commit:8e7c0b4
Author:eric
Committer:eric

router, conf: support INBOUND-TAG rule

Commit:028f294
Author:eric
Committer:eric

conf: support NETWORK rule

Commit:fbe3a5a
Author:eric
Committer:eric

inbound/tls: new inbound

Commit:d35e649
Author:eric
Committer:eric

Experimental plugin system

Commit:489d80f
Author:eric

outbound/rr: new outbound to dispatch requests in a round-robin manner

Commit:5dfbcaa
Author:eric
Committer:eric

config, router: make doman-resolve option reloadable

Commit:c1d6852
Author:eric
Committer:eric

outbound/tun: automate tun setup

Commit:47071b8
Author:eric
Committer:eric

outbound/select: persists selector state

Commit:f8163d1
Author:eric

config/json, test: enable api on json config and fix tests

Commit:a2dadff
Author:eric

outbound/select: new outbound

Commit:ae5f0f6
Author:eric
Committer:eric

proxy/quic: a UDP-based multiplexed and secure transport

Commit:8b1268b
Author:eric
Committer:eric

amux: a multiplexing transport

Commit:5b1582f
Author:eric
Committer:eric

proxy: elementary support for multiplexing transports This adds an `Incoming` transport to represent a `futures::stream::Stream` of incoming transports from a multiplexing handler which accepts a single stream as input and returns multiple streams as output. A work in progress `amux` handler is also included.

Commit:6ef895a
Author:eric

inbound/shadowsocks: new inbound

Commit:99680ab
Author:eric

dns: support DNS static hosts

Commit:f764670
Author:eric

outbound/ws: support custom headers

Commit:0ac84b7
Author:eric

outbound/retry: added retry outbound retry outbound allows multiple attempts on a list of outbounds.

Commit:87d52fb
Author:eric

router: support port range matching

Commit:82545d4
Author:eric

Refactor

Commit:d52a49e
Author:eric

failover: Add the option to cache fallback actors

Commit:807ad5a
Author:eric
Committer:eric

Added several inbounds * Added WebSocket inbound * Added trojan inbound * Added chain inbound Similar to the chain outbound, chain inbound can be used to chain multiple inbounds. The Nginx/CDN (TLS) + WebSocket + trojan setup is tested. There are also breaking changes to the JSON config format. Fake DNS now can operate in either Include or Exclude mode. SOCKS inbound settings no longer has the `bind` option, the local_addr of the TCP socket is used as the UDP relay address.

Commit:d1112c0
Author:eric

add h2 support

Commit:897fc87
Author:eric

initial commit