Releases: wkgcass/vproxy
1.0.0-BETA-12 release
Features
- switch: Support AF_XDP
- switch: Node-Graph refactor
- switch: Support tun device for linux and macos
- switch: Support 802.1Q subinterfaces
- switch: Add ovs-of syntax packet filter generator
- switch: Support ratelimit and flow statistics
- switch: Support conntrack and NAT
- switch: Support proxy-protocol header in tcp nat
- library: Netty adaptor
- library: Vert.x adaptor
- Add a library based on kotlin coroutine
- Use CriticalNative JNI methods wherever possible
- Support core affinity
- Support plugins
- ui: Add a UI tool: ipv4 calculator
Upgrades
- switch: allow to calculate checksum in C code
- Project restructure: all packages in
io.vproxy
- Use docker to run tests
- Docker network plugin upgrade: use xdp
- Command upgrade:
ls ll add mod rm
- websocks: Support
uot
- udp over tcp, which uses tcp to transmit udp datagram - websocks: Use new vjson syntax to design vpws-agent.conf
- Allow to use jdk 17
Runtime
jlink --add-modules jdk.unsupported,jdk.crypto.ec,jdk.crypto.cryptoki
New linux runtime:
Adoptium OpenJDK
4360fc96470a8dc29737271d7ad286f3 OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz
95f02bd03bd3405675870736e7ab5560 vproxy-runtime-linux.tar.gz
New musl runtime:
7b94d2301932ef2cbf6946a70779fce9 OpenJDK17U-jdk_x64_alpine-linux_hotspot_17.0.7_7.tar.gz
b2b9e39a6c45043b5adb329502e66154 vproxy-runtime-musl.tar.gz
1.0.0-BETA-11 release
Features
- add net/socks5 client/server
- now vproxy is able to retrieve DNS servers by DHCP
- add global inspection function, and more inspecting tools
- improve direct buffer management, caching, and add direct buffer statistics
- add FileFD and add file reading features to vproxy system
- add
Promise
support - vpws-ui now supports configuration loading (from paste board)
- [ALPHA] add msquic support in msquic-java
- full refactor for processor to make it easier to use
- full refactor for h2 processor impl
- support websocket in http/1.x and h2
- support multiple patterns of system properties
Upgrades
- default configuration directory changed to
~/.vproxy
, all configs are stored in this directory by default - add a script to automatically configure a full building/testing environment for vproxy: see auto-deploy
- add page expire feature in vpws-server and support cache control headers
- support direct http proxy in vpws-agent
- cache selector related objects to improve performance
- use custom threads instead of threadlocals
- support gzip in http/1.x req/resp
- use TravisCI
- use uninitialized byte arrays
1.0.0-BETA-11-DEV-1 pre release
Features
This is a pre released, mainly because of the first release of my Chara
project, which uses vproxy
as its threading and networking base. Though the following features are tested at least once and are supposed to be working as expected.
The release of 1.0.0-BETA-11
will come later with more modifications and a full test.
User space TCP stack
Add a TCP stack run in userspace as a part of the vproxy Switch
lib.
listen
on an addressaccept
new connectionsread
data and automatically sendack
write
data and automatically retransmitFIN
andRST
- simple window based congestion control
Docker network plugin
Add a new feature to drive docker network based on the vproxy Switch
lib. The containers can run above the vproxy virtual networking stack, and cloud be manipulated via docker commands or via vproxy commands.
Improvement
- support to dispatch requests based on uri (previously only support to dispatch by Host header)
- allow to upload
CertKey
s via api - add
AbstractProcessor
to simplify the processor code - better jlink support
- vjson lib upgrade to 1.2.1 to fix charset issues
- change configuration storage locations
1.0.0-BETA-10 release
Features
SDN
Added software vxlan switch support: tap and vxlan and trunk.
- tap device for linux, macos and windows
- support vxlan packets
- exchange vxlan packets between switches
- encrypted link from switch to switch
- synthetic ip and routes
Mirror
Allow software to generate packets to tap devices and use tcpdump to capture them.
This helps debug the SSL buffers, kcp arq fds etc.
Modular
Use gradle and Jigsaw modular system to modularize vproxy into small components.
Fix
- AbstractWrapBuffer fix: SSL used to hang in some cases
1.0.0-BETA-9 release
Features
- Kubernetes integration, visit vpctl for more info.
- Support HTTP and DNS health check.
protocol http/dns
. - Use annotations to determine detailed health check arguments. See
AnnotationKeys.java
. - Record health check time cost for each server.
- Record health check fail reason for each server.
- Support to watch health check events.
- Support to modify
listOfCertKey
in TcpLb. - Support better
direct-relay
mechanism in vpws-agent.
Change
- Now http-controller and resp-controller are launched by default on startup (127.0.0.1:18776 and 16379).
- WebSocksProxyAgent config upgrade
Removal
- Remove the discovery module. Since now we support k8s, there's no need to implement a discovery module by ourselves.
1.0.0-BETA-8 release
Features
default discovery config
Now discovery is enabled by default. The default configuration will be based on the current nic config.
SRV records
Use SRV to retrieve all servers handled by the dns server.
Upgrade
- certificate selection should consider common name
- support alpn proxy in https relay
- support annotations in server-group/upstream
- change
pac.address
topac.listen
Doc
- http api doc
- add
vpctl
doc - better README format (add detail tags)
Tools
Visit here for more info.
vpctl
The control program for the vproxy instance.
1.0.0-BETA-7 release
Features
DNS
- Add a DNS Client, and remove the use of JDK DNS impl.
- Add a DNS Server and corresponding API
- DNS Server supports customized A/AAAA records based on server-group names
SSL
- Support SNI on server side, automatically select certs based on SNI
WebSocksProxyServer/Agent
- Server: Add an api to resolve domains.
- Server: Support webroot for some small static files
- Agent: Support dns resolve. You may choose some domains to be resolved on server side
- Agent: Support https relay. Netflow can automatically be proxied just by setting the DNS address and adding a root CA cert on devices.
- Both: Support to compress kcp-tunnel netflow
Improvement
- Support graalvm native-image (the latest graalvm native-image supports JDK11 and DatagramChannel)
- Add some scripts to generate self signed CA cert and certs for specific domains
- Add a Makefile to automate the building process
- Support to disable health check in server-groups. Corresponding APIs are upgraded.
- OOM check: automatically terminate the program if got OOM
- Some util upgrade and small code refactor
New extended Apps
- Add a kcptun app
bug fix
General Bug fix for:
- SSL Buffers
- KCP fds implementation
1.0.0-BETA-6 release
Features:
Native support (Posix API and F-Stack)
- Refactor: define
FDs
to replace the direct use ofChannels
- Support native fds implementation for macos and linux.
- Support native fds implementation for
F-Stack
.
Protocol
- WebSocksProxyAgent now supports
ss
. - WebSocksProxyAgent/Server now supports
kcp
(tunnel).
DevOps
- Add a new program
Daemon
to work withSystemd
. - Add a new program
HelloWorld
to quickly check whether the environment and main functionalities are ok.
1.0.0-BETA-5 release
Features
- handle PSH+FIN properly
- add http controller, support full functionality of resp controller
- add vjson lib
- add vserver
- add vclient
- refactor the discovery protocol
- remove smart-lb-group
- add smart-node-delegate
- add smart-group-delegate
- in most cases use FIN instead of RST
- rename some classes
Runtime
jlink --add-modules jdk.unsupported,jdk.crypto.ec,jdk.crypto.cryptoki
New linux runtime:
AdoptOpenJDK
MD5 (OpenJDK11U-jdk_x64_linux_hotspot_11.0.4_11.tar.gz) = 501e4af4764ecb96f6abe9ae1ff12b9c
MD5 (vproxy-runtime-linux.tar.gz) = f9a57f0a244b47737188581b4fef806f
New musl runtime:
MD5 (openjdk-14-ea+15_linux-x64-musl_bin.tar.gz) = 32bbc431d37382789e908990e9094fde
MD5 (vproxy-runtime-musl.tar.gz) = ad4adfc32e27df1082f748e35956d15c
1.0.0-BETA-4 release
- support http/1.x
- add a mixed processor which can handle both h2 and http/1.x
- support to load certs/key and enable TLS in LB
- alpn for h2 or http/1.1 is supported