Skip to content

v0.0.14-rc

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Jun 06:44

πŸ“¦ Assets

Platform Archive
Linux x86_64 zero-linux-x86_64.tar.gz
macOS x86_64 zero-darwin-x86_64.tar.gz
macOS aarch64 zero-darwin-aarch64.tar.gz
Windows x86_64 zero-windows-x86_64.zip

Quick download (latest): https://github.com/\zerodenet/zero/releases/latest/download/zero-{platform}.{ext}

πŸ“ Changes

πŸš€ Added (2)

  • route by inbound tag
  • add TransportKind and InboundTransport for transport dispatch

πŸ› Fixed (8)

  • gate reality-only test and mux APIs
  • account ordinary udp upstream responses
  • flush stream-framed protocol responses
  • restore managed relay flow reuse
  • preserve socks5 udp outbound attribution
  • preserve inbound tag in panel trace route
  • add feature gates on establish_*_outbound match arms, split start.rs
  • initialize UDP session rate limits matching TCP path

πŸ”¨ Improved (761)

  • hide stream udp responder buffers
  • move stream udp read buffers into protocols
  • move datagram udp inbound tracking into protocols
  • centralize socks5 udp associate protocol glue
  • centralize datagram udp inbound relay glue
  • centralize mux udp inbound relay glue
  • route vless udp inbound through stream relay glue
  • centralize stream udp inbound relay glue
  • thin shadowsocks inbound adapter
  • thin trojan hysteria2 profile adapters
  • thin socks5 mieru tcp adapters
  • delegate socks5 command dispatch
  • delegate vless vmess inbound session dispatch
  • delegate trojan mieru inbound session dispatch
  • delegate socks5 udp relay classification
  • wrap socks5 udp associate responses
  • wrap hysteria2 udp inbound responses
  • wrap shadowsocks udp inbound responses
  • wrap trojan mieru udp inbound responses
  • wrap stream udp inbound responses in protocols
  • wrap mux udp inbound responses in protocols
  • move mux pool key specs into protocols
  • centralize inbound udp pipe dispatch
  • group mux tcp handoff inputs
  • share vmess mux tcp handoff
  • share socks5 udp response writes
  • share datagram udp response writes
  • share mux udp response writes
  • share stream udp response writes
  • unify socks5 udp direct responses
  • share inbound udp chain responses
  • share inbound udp direct responses
  • thin mieru inbound profile adapter
  • thin vmess inbound profile adapter
  • thin vless inbound adapter config
  • thin socks5 shadowsocks config adapters
  • thin vless vmess config adapters
  • move vless fallback recording stream to transport
  • share inbound tls async socket glue
  • keep inbound udp response models protocol-owned
  • send socks5 direct udp responses as client models
  • submit socks5 udp dispatch as neutral request
  • drop inbound udp ip response shims
  • drop inbound udp sender response shims
  • route inbound udp direct responses through client models
  • wrap hysteria2 udp responses
  • wrap trojan mieru udp responses
  • wrap vless vmess udp responses
  • wrap socks5 udp client responses
  • narrow socks5 udp dispatch bridge
  • split vmess udp inbound glue
  • split mux udp inbound glue
  • split hysteria2 udp inbound glue
  • split stream udp inbound glue
  • hide tcp outbound result variants
  • centralize tcp outbound result construction
  • hide mux pool key endpoints behind protocol accessors
  • centralize udp association lifecycle identity
  • narrow udp association identity bridge
  • thin mux pool key construction
  • move inbound stream wrapping into protocol
  • neutralize stream udp inbound dispatch
  • route inbound udp through neutral dispatch
  • move inbound udp relay classification into protocol
  • move inbound mux server state into protocol
  • move inbound mux server state into protocol
  • encapsulate packet path cache identity
  • neutralize tcp outbound results
  • keep inbound udp session tracking protocol-owned
  • keep inbound profile materialization protocol-owned
  • keep outbound password materialization protocol-owned
  • keep tcp password materialization protocol-owned
  • keep auth user materialization protocol-owned
  • keep inbound user materialization protocol-owned
  • delegate mux pool keys to protocols
  • hide inbound cipher detail from proxy
  • derive udp inbound protocol from dispatch parts
  • keep udp dispatch tracking protocol-owned
  • keep udp dispatch tracking protocol-owned
  • hide udp associate dispatch view details
  • classify inbound sessions in protocol
  • classify trojan and mieru inbound sessions
  • classify inbound transport sessions in protocol
  • classify inbound mux opened streams
  • shrink inbound mux task models
  • route custom tcp metering through runtime
  • centralize udp response attribution
  • centralize upstream udp response accounting
  • use structured socks5 upstream udp responses
  • keep udp response decoding in protocol
  • use inbound udp response accounting
  • centralize inbound udp response accounting
  • expose packet-path carrier codec
  • move http redirect selection to runtime
  • narrow inbound profile config adapters
  • move vless vmess inbound user config helpers
  • move inbound auth config helper to protocol
  • hide inbound mux identity context
  • hide inbound udp session response gating
  • hide inbound udp response session lookup
  • hide inbound mux action state
  • hide inbound mux stream state
  • hide inbound mux downlink handling
  • hide managed udp codec sharing
  • hide inbound udp dispatch recording
  • move mux tcp relays into protocols
  • move mux stream tables into protocols
  • hide encoded upstream udp response send
  • return inbound udp response length
  • hide inbound udp session recording
  • hide inbound udp session recording
  • hide inbound mux downlink channel
  • move inbound mux writer pump to protocol
  • store managed udp resumes directly
  • build inbound tls acceptor in adapter
  • build inbound tls acceptor in adapter
  • build inbound tls acceptor in adapter
  • hide tcp target from proxy adapter
  • move mux transport identity into protocol
  • move mux transport identity into protocol
  • use neutral quic profile in connector
  • move tls profile materialization out of adapters
  • keep xhttp udp relay mode in transport
  • borrow stream udp dispatch parts
  • borrow vless vmess udp dispatch parts
  • delegate xhttp inbound mode selection
  • hide inbound udp session keys
  • hide stream udp dispatch fields
  • hide inbound udp dispatch fields
  • hide vless vmess udp dispatch fields
  • keep mux inbound sessions protocol-owned
  • use neutral packet path datagram endpoint
  • keep packet path datagram key opaque
  • wrap mux pool connections in protocol key
  • keep pool identities protocol-owned
  • hide udp response model from adapter runtime
  • name redirect selection as proxy glue
  • consume inbound udp dispatch parts directly
  • keep inbound udp dispatch parts protocol-owned
  • keep mux api under protocol module
  • keep mux api under protocol module
  • keep udp associate decisions protocol-owned
  • keep mux frame helpers off root api
  • keep wire helpers off root api
  • keep data phase internals off root api
  • keep shared helpers off root api
  • delegate hysteria2 connect responses
  • centralize stack socket address conversion
  • use platform socks5 udp relay address conversion
  • delegate vmess mux payload framing
  • delegate vless mux payload framing
  • centralize inbound source address conversion
  • use neutral socks5 udp response targets
  • share socks5 inbound auth bridge
  • use socks5 relay socket address
  • delegate udp direct response endpoints
  • delegate inbound udp sender targets
  • delegate stream udp response targets
  • route vless mux writer through facade
  • delegate mux udp payload decode
  • use vmess inbound mux session facade
  • use vless inbound mux session facade
  • delegate socks5 udp associate reply
  • delegate http connect inbound replies
  • delegate socks5 inbound replies
  • use socks5 tcp outbound profile
  • use mieru tcp outbound profile
  • use trojan tcp outbound profile
  • use hysteria2 outbound profile
  • delegate hysteria2 datagram inbound reads
  • delegate vmess udp inbound reads
  • delegate vless udp inbound reads
  • delegate mieru udp inbound reads
  • thin hysteria2 packet path codec bridge
  • thin shadowsocks packet path codec bridge
  • consume trojan udp dispatch view
  • consume hysteria2 udp dispatch view
  • consume mieru udp dispatch view
  • delegate socks5 udp dispatch classification
  • normalize inbound profile config bridges
  • thin mieru inbound profile bridge
  • thin vless reality inbound profile
  • thin vless vmess inbound profiles
  • thin socks5 inbound auth adapters
  • route vmess mux tcp through pipe
  • delegate inbound udp dispatch parts
  • delegate vless vmess udp dispatch decode
  • trim hysteria2 inbound request config
  • pass vless inbound transport config through adapter
  • move vless inbound profile to protocol
  • move socks5 inbound auth to protocol
  • move vmess inbound profile to protocol
  • move mieru inbound auth profile to protocol
  • move trojan inbound auth profile to protocol
  • move vless reality inbound profile to protocol
  • move vless inbound user store to protocol
  • move socks5 udp direct response target to protocol
  • move hysteria2 inbound quic auth to protocol
  • move shadowsocks udp client routing to protocol session
  • move vless inbound mux actions to protocol
  • move vmess inbound mux actions to protocol
  • move vmess tcp session setup to protocol config
  • move vmess tcp mux identity to protocol
  • move vless flow classification to protocol
  • move hysteria2 auth handshake to protocol
  • move socks5 udp association identity to protocol
  • move vless deferred stream wrapping to protocol
  • move shadowsocks tcp stream wrapping to protocol
  • move inbound mux session mapping to protocols
  • share udp response accounting in remaining inbounds
  • centralize inbound udp response accounting
  • move inbound auth identity to protocols
  • move tcp mux identity build to protocols
  • move vless vmess mux identity build to protocols
  • move shadowsocks inbound udp response send to protocol
  • trim hysteria2 inbound udp dispatch glue
  • route mieru inbound udp through udp pipe
  • wrap vmess inbound mux server in protocol session
  • wrap vless inbound mux server in protocol session
  • move socks5 udp dns request classification to protocol
  • move hysteria2 inbound stream framing to protocol
  • move mieru tcp tunnel logic to protocol
  • move trojan tcp target construction to protocol
  • move socks5 tcp auth target construction to protocol
  • move http connect redirect framing to protocol
  • move mieru udp target mapping to protocol
  • move mieru tunneled socks5 accept to protocol
  • move vless vmess udp peer targets to protocols
  • move inbound udp peer targets to protocols
  • move shadowsocks udp response framing to protocol
  • move socks5 udp response framing to protocol
  • move mieru inbound stream state to protocol
  • keep vmess mux frame queueing protocol-owned
  • remove protocol outbound facade
  • move h2 and vless outbound glue into adapters
  • move trojan outbound glue into adapter
  • group vmess tcp connect parameters
  • move vmess outbound glue into adapter
  • move shadowsocks outbound glue into adapter
  • tighten registry layout and socks5 outbound glue
  • hide shadowsocks inbound response target
  • remove socks5 udp root export
  • confine protocol udp APIs to modules
  • move shadowsocks udp APIs under module
  • move socks5 udp APIs under module
  • move trojan udp APIs under module
  • move mieru udp APIs under module
  • move stream protocol udp APIs under modules
  • narrow protocol root exports
  • remove packet path runtime carriers
  • hide packet path build getters
  • consume managed connector flow identity
  • consume inbound upstream response parts
  • consume vless inbound response parts
  • hide socks5 inbound packet lookups
  • consume socks5 association parts
  • hide socks5 association identity
  • consume protocol flow build parts
  • consume shadowsocks datagram codecs
  • hide stream connector flow builds
  • hide hysteria2 outbound flow build
  • hide managed flow build methods
  • hide outbound codec build details
  • move packet path builds behind protocol helpers
  • snapshot socks5 association targets
  • snapshot socks5 association identity
  • hide socks5 packet path target parts
  • unify hysteria2 profile connection setup
  • hide shadowsocks socket flow codec build
  • generic managed connector flow builds
  • generic packet path carrier descriptors
  • generic packet path datagram builds
  • hide socks5 packet path carrier target
  • hide hysteria2 packet path build parts
  • own packet path datagram sources
  • bundle socks5 shadowsocks dispatch facts
  • bundle hysteria2 trojan dispatch facts
  • bundle vless vmess dispatch facts
  • move shadowsocks inbound session map
  • bundle shadowsocks inbound response facts
  • bundle socks5 inbound packet facts
  • delegate vmess mux frame events
  • delegate vless mux server frames
  • bundle vmess mux frame encoding
  • bundle socks5 association send facts
  • bundle shadowsocks datagram source facts
  • bundle packet path carrier descriptors
  • bundle datagram connector flow facts
  • bundle managed connector flow facts
  • bundle packet path carrier details
  • decode upstream responses behind handlers
  • delegate inbound udp sessions to protocols
  • bundle outbound profile specs
  • bundle socks5 flow target
  • bundle stream flow identities
  • bundle managed flow identities
  • return packet path protocol bundles
  • bundle packet path datagram source
  • separate shadowsocks datagram key
  • separate packet path carrier keys
  • wrap vless mux open identity
  • wrap vmess mux open identity
  • move vmess mux cache identity
  • move vless vmess flow config builders
  • move stream flow resume builders
  • move flow resume builders
  • move packet path spec builders
  • collapse stream packet managers
  • hide socks5 vmess payload fields
  • hide protocol packet fields
  • hide vless vmess packet fields
  • hide inbound udp request payload
  • consume vless vmess udp requests
  • consume udp request models
  • hide udp response bridge fields
  • hide inbound udp packet fields
  • hide udp packet model
  • hide raw udp crypto helpers
  • hide raw udp stream helpers
  • hide vless vmess raw helpers
  • hide raw udp helpers
  • hide raw udp helpers
  • hide raw udp helpers
  • hide raw udp helpers
  • hide raw udp helpers
  • stop reexporting raw udp helpers
  • stop reexporting raw udp helpers
  • move vless vmess identity config parsing
  • move tcp cipher config into protocol
  • hide inbound datagram helpers
  • wrap inbound udp framing in protocol session
  • wrap inbound udp framing in protocol session
  • wrap inbound udp framing in protocol session
  • wrap packet path config in protocol spec
  • move packet path specs into protocols
  • wrap udp association state in protocol crate
  • hide mux flow startup details in protocols
  • move udp association target into protocol crate
  • split stream connector glue from trojan mieru roots
  • split stream managed models and establish glue
  • keep stream flow config parsing out of roots
  • split stream flow glue from vless vmess roots
  • let dispatch build stream packet flow results
  • rename packet-path configs to flow configs
  • centralize managed flow start glue
  • remove public packet-path config products
  • hide packet-path internals behind protocol configs
  • hide shadowsocks packet-path internals behind config helpers
  • move socks5 associate framing behind protocol codec
  • route trojan tls opening through transport facade
  • route vmess transport through transport builder
  • lift vmess stream packet manager into runtime glue
  • lift vless stream packet manager into runtime glue
  • lift trojan stream manager into runtime glue
  • lift mieru stream manager into runtime glue
  • lift shadowsocks datagram manager into runtime glue
  • lift hysteria2 datagram manager into runtime glue
  • neutralize managed udp bridge names
  • rename protocol udp state to registered handlers
  • thin socks5 udp adapter root
  • move stream adapter flow glue into submodules
  • thin hysteria2 udp adapter root
  • thin shadowsocks udp adapter root
  • keep managed cache keys private
  • split managed flow runtime surface
  • hide datagram cache keys from shadowsocks
  • hide managed cache keys from senders
  • wrap managed protocol connections
  • centralize datagram connection bridge
  • move datagram response waiters into runtime
  • centralize datagram cache insertion
  • centralize managed relay cache sends
  • centralize managed stream cache sends
  • remove unused managed cache lookup
  • reuse managed stream connections neutrally
  • centralize managed connection reuse
  • hide shadowsocks datagram bridge state
  • isolate socks5 association establishment
  • cache shadowsocks datagram flows neutrally
  • share neutral stream connection cache
  • cache managed flows behind neutral keys
  • hide socks5 association handle details
  • own socks5 association lifecycle in runtime
  • hide shadowsocks datagram connection details
  • cache h2 flow behind neutral connection
  • cache stream flows behind neutral connection
  • store stream connections behind neutral trait
  • reuse tuple response bridge
  • hide flow connection construction
  • hide udp flow start helper
  • hide udp initial packet encoding
  • split vless vmess manager glue
  • centralize socks5 udp response bridge
  • hide inbound udp session codec
  • hide inbound udp session state
  • hide inbound udp session state
  • hide inbound udp session state
  • hide inbound udp request decoding
  • hide inbound auth profile
  • hide inbound profile details
  • wrap UDP flow sessions
  • hide UDP flow sessions
  • hide UDP flow store
  • hide UDP session stores
  • drop proxy stream wrappers
  • use managed UDP response bridge
  • share managed UDP response bridge
  • hide UDP cache key internals
  • centralize UDP connection setup in outbound boundary
  • route flow establishment through protocol configs
  • move UDP TLS profile expansion to outbound boundary
  • keep UDP profile auth in protocol crate
  • move VLESS and VMess flow config into protocols
  • bundle UDP flow config in protocol crate
  • bundle UDP flow resume config in protocol crate
  • bundle UDP flow resume config in protocol crate
  • bundle UDP packet path profile in protocol crate
  • hide UDP relay construction in protocol crate
  • move UDP association config into protocol crate
  • bundle UDP packet path state in protocol crate
  • move UDP flow startup into protocol crate
  • move UDP flow startup into protocol crate
  • move UDP flow startup into protocol crate
  • move UDP flow startup into protocol crate
  • move UDP flow startup into protocol crate
  • group UDP flow runtime state
  • move managed start dispatch into managed state
  • delegate existing managed forwarding to managed state
  • keep managed flow snapshots in managed state
  • keep stream senders in managed state
  • rename cached senders to managed stream senders
  • merge cached flows into managed stream path
  • route cached flow forwarding through protocol state
  • track cached flows by managed ref
  • keep cached flow sender in protocol state
  • keep stream flow stores in protocols
  • keep udp flow store in protocol
  • cache udp flow sessions in protocol
  • cache udp flow sessions in protocol
  • cache udp flow sessions in protocol
  • cache udp flow sessions in protocol
  • cache udp flow sessions in protocol
  • keep cache key builders protocol private
  • hide udp packet path config fields
  • hide udp packet path config fields
  • use protocol resume cache keys for relay flows
  • route inbound udp through protocol codec
  • move inbound udp datagram sends to protocol
  • move inbound udp response writes to protocol
  • move inbound udp response framing to protocol
  • move udp associate response framing to protocol
  • move inbound udp response writes to protocol
  • move inbound udp response writes to protocol
  • move inbound udp response mode to protocol
  • move mux connection pump to protocol
  • move mux stream pumps to protocol
  • move hysteria2 initial packet to protocol
  • move vless vmess initial packets to protocols
  • thin shadowsocks manager send path
  • hide trojan flow channels in protocol
  • move hysteria2 flow pump to protocol
  • move mieru stream pump to protocol
  • move trojan stream pump to protocol
  • move stream flow pumps to protocols
  • replace protocol adapter boundary
  • remove vmess inbound udp wrappers
  • remove vless inbound udp wrappers
  • remove shadowsocks peer wrapper
  • remove trojan peer wrapper
  • remove mieru peer wrapper
  • remove hysteria2 peer wrapper
  • move protocol state glue into runtime
  • move managed handler state into runtime
  • move managed flow requests into runtime
  • move managed flow resume into runtime
  • move socks5 udp associate glue
  • move mux pools into adapters
  • register socks5 upstream handler
  • move vmess manager into adapter
  • move vless manager into adapter
  • use protocol-owned datagram cache keys
  • move stream managers into adapters
  • move datagram managers into adapters
  • register managed handlers through adapters
  • move cached manager starts to adapters
  • move cached starts into flow bridges
  • remove cached start enum
  • track cached flows in session state
  • move cached start dispatch out of state
  • unify cached flow dispatch
  • keep cached flows out of managed state
  • register cached flow handlers
  • collect managed handlers at register boundary
  • dispatch managed flows through handlers
  • hide protocol flow resume variants
  • keep vless vmess flow io inside pump tasks
  • move hysteria2 flow io behind protocol api
  • hide shadowsocks flow cache keys behind protocol api
  • hide mieru flow cache keys behind protocol api
  • hide hysteria2 flow cache keys behind protocol api
  • hide trojan flow cache keys behind protocol api
  • move vless vmess flow io behind protocol api
  • split managed protocol state by flow family
  • send trojan flow packets through protocol api
  • move h2 flow encoding behind protocol api
  • move mieru flow decode behind protocol api
  • keep managed flow models internal
  • keep upstream poll detail out of udp root
  • neutralize protocol upstream state access
  • neutralize upstream association lifecycle
  • hide socks5 upstream receive helper
  • hide socks5 send request details
  • keep manager request models private
  • confine resume variant matching
  • hide resume variants from adapters
  • hide socks5 resume check behind runtime
  • delegate managed resume recognition to managers
  • hide manager request models from managed executor
  • centralize managed flow execution
  • hide protocol managers behind managed state
  • move stream packet framing behind protocol helpers
  • store neutral packets in protocol flow channels
  • collapse protocol flow facades into managed bridge
  • move vless vmess flow facades to protocol runtime
  • move protocol flow facades out of dispatch
  • hide protocol snapshots behind managed refs
  • own packet path manager in dispatch
  • move packet path glue into runtime flow
  • keep udp flow tasks in proxy glue
  • keep vless vmess flow tasks in proxy glue
  • keep flow tasks in proxy glue
  • move udp flow driver into protocol crate
  • move udp flow driver into protocol crate
  • move vless vmess flow models out of generic udp
  • move socks5 relay start from state root
  • move stream resume dispatch from state root
  • move datagram resume dispatch from state root
  • keep vless vmess requests out of dispatch
  • keep udp packet channel neutral
  • hide udp flow packet conversion
  • hide udp flow packet construction
  • hide udp flow packet codec
  • remove protocol dependency from transport
  • delegate quic handshake framing
  • move udp flow pump out of transport
  • keep udp stream glue out of transport
  • remove udp stream pump from transport
  • make shadowsocks udp socket codec driven
  • send udp packets neutrally
  • route udp stream packets neutrally
  • own udp flow packet construction
  • own udp association handle
  • own udp relay handshake
  • own packet-path response decoding
  • own udp flow runtime in protocol
  • own udp flow runtime in protocol
  • own vless udp flow stream
  • own udp packet path carriers
  • route managed udp through neutral state facade
  • own shadowsocks udp socket flow
  • own mieru udp flow stream
  • own trojan udp flow stream
  • own trojan udp tls opening
  • own hysteria2 udp flow stream
  • delegate vmess mux transport opening
  • extract vless udp transport opening
  • own vless udp flow io
  • own vmess udp flow io
  • extract vmess udp transport opening
  • neutralize vless vmess udp responses
  • carry vless vmess udp identities
  • own vless vmess udp flow helpers
  • own vless vmess udp identity parsing
  • unify managed udp relay starts
  • unify managed udp stream starts
  • unify managed udp datagram start
  • hide hysteria2 udp peer details
  • hide mieru udp peer details
  • hide trojan udp peer details
  • use shadowsocks udp packet model
  • use hysteria2 udp packet model
  • move trojan udp stream io
  • move mieru udp stream io
  • hide udp packet operations
  • use protocol udp packet models
  • type packet path snapshot lookup
  • hide shadowsocks packet path helpers
  • keep datagram udp keys protocol-owned
  • keep udp peer keys protocol-owned
  • wrap inbound udp helpers in protocols
  • route inbound udp framing through codecs
  • wrap udp flow codecs in protocols
  • move vless udp mux framing out of adapter
  • move socks5 packet path identity into protocol
  • pass mieru udp resume through state
  • pass trojan udp resume through state
  • move udp packet path factories into protocols
  • delegate ss h2 udp codecs to resumes
  • move mieru udp flow io into protocol
  • move trojan udp flow io into protocol
  • wrap socks5 udp relay resume
  • keep udp flow resume opaque to dispatch
  • use unified udp flow resume in dispatch
  • wrap socks5 udp flow resume
  • unify udp flow resume snapshot
  • opaque trojan udp snapshot
  • opaque hysteria2 udp snapshot
  • opaque mieru udp snapshot
  • opaque shadowsocks udp snapshot
  • inject shadowsocks udp flow codec
  • inject mieru udp flow codec
  • inject hysteria2 udp flow codec
  • gate quic packet-path by transport
  • ungate packet-path dispatch
  • inject quic packet-path connection
  • move UDP peer models out of packet-path traits
  • rename packet-path carriers by transport
  • derive packet-path flow identity directly
  • neutralize packet-path flow snapshot
  • inject hysteria2 packet-path codec
  • use codec-backed packet-path carrier
  • route packet-path carrier builders
  • bind packet-path flow parts
  • neutralize packet-path snapshot helpers
  • split packet-path flow snapshot
  • split packet-path datagram descriptor
  • neutralize packet-path carrier snapshot
  • use opaque packet-path carrier keys
  • move socks5 udp cache identity
  • move hysteria2 udp cache identity
  • move shadowsocks udp cache identity
  • use vmess inbound udp helpers
  • use vless inbound udp helpers
  • use shadowsocks packet-path flow helpers
  • use hysteria2 packet-path flow helpers
  • use vless mux udp flow helper
  • use vmess udp flow helpers
  • use vless udp flow helpers
  • use hysteria2 inbound udp helpers
  • use trojan inbound udp helpers
  • use mieru inbound udp helpers
  • use trojan udp flow helpers
  • use hysteria2 udp flow helpers
  • use mieru udp flow helpers
  • use shadowsocks udp flow helpers
  • delegate vmess tcp outbound setup
  • use vmess inbound mux reader helper
  • use vmess mux frame reader helper
  • delegate vmess mux connection setup
  • use vmess mux stream helper
  • delegate vless mux crypto setup
  • use vless mux frame helpers
  • delegate vmess udp stream setup
  • delegate vless udp tunnel setup
  • use socks5 response helpers in inbounds
  • decode socks5 packet path responses via helper
  • use socks5 udp associate helpers
  • hide shadowsocks packet path codec
  • reuse shadowsocks packet path helpers
  • reuse vless udp adapter packet helper
  • delegate trojan udp tunnel setup
  • reuse vless vmess udp packet helpers
  • reuse hysteria2 packet path datagram helpers
  • reuse shadowsocks udp datagram codec
  • reuse hysteria2 udp datagram codec
  • hide trojan udp packet framing
  • reuse mieru udp packet framing
  • delegate mieru udp packet framing
  • delegate trojan udp packet framing
  • delegate vless udp packet framing
  • delegate vmess udp payload parsing
  • delegate vmess udp response encoding
  • reuse packet path snapshot builders
  • centralize udp flow snapshots
  • delegate udp forward snapshots
  • narrow packet path carrier exports
  • narrow udp packet path exports
  • source packet path datagram keys
  • source packet path flow snapshots
  • source packet path datagram codecs
  • narrow udp dispatch facade exports
  • normalize tcp outbound relay streams
  • separate udp packet path adapter capability
  • separate udp flow adapter capability
  • separate inbound adapter capability
  • separate tcp adapter capability
  • separate adapter support capability
  • split adapter dispatch contexts
  • let udp dispatch describe flow snapshots
  • route udp adapters through dispatch facades
  • route hysteria2 udp through dispatch facade
  • hide udp datagram source construction
  • centralize udp packet path snapshots
  • centralize udp packet path cache keys
  • keep socks5 udp runtime in protocol state
  • move socks5 relay snapshot behind protocol state
  • move managed udp flow handles
  • isolate runtime udp flow snapshots
  • split protocol adapter capability surface
  • centralize protocol registration boundary
  • enforce adapter-owned runtime boundaries
  • split protocol adapter registry facades
  • keep outbound helpers crate-private
  • remove direct outbound facade
  • make transport facade explicit
  • make protocol inbound imports explicit
  • make udp dispatch imports explicit
  • make adapter imports explicit
  • split shadowsocks inbound udp relay
  • move hysteria2 inbound config parsing to adapter
  • move vmess inbound config parsing to adapter
  • move trojan inbound config parsing to adapter
  • move shadowsocks inbound config parsing to adapter
  • move mieru inbound config parsing to adapter
  • move direct inbound config parsing to adapter
  • route leaf runtime facts through adapters
  • trim vless tcp connect warning
  • trim vmess tcp connect warning
  • trim trojan tcp connect warning
  • trim packet path snapshot warning
  • trim trojan udp flow warnings
  • trim mieru udp flow warnings
  • continue runtime module split
  • trim hysteria2 udp flow warnings
  • trim socks5 udp associate warnings
  • trim boundary cleanup warnings
  • move registry construction
  • split udp flow outbound snapshot
  • move udp packet path snapshots
  • narrow udp protocol state visibility
  • delegate udp protocol forwarding
  • delegate udp packet path send
  • delegate cached udp protocol flows
  • move udp protocol flow helpers
  • group udp protocol managers
  • rename generic udp flow state
  • move socks5 udp associate out of runtime
  • move udp protocol managers out of runtime
  • isolate protocol runtime state
  • slim protocol transport ADTs
  • clean socks5 and vmess clippy warnings
  • compact vless transport options
  • compact protocol call parameters
  • compact mux pool parameters
  • split udp protocol flow wrappers
  • slim udp dispatch and gate boundaries
  • split udp dispatch lifecycle
  • freeze adapter dispatch boundaries
  • enforce runtime boundaries
  • extract socks5 udp runtime
  • split adapters and tighten protocol boundaries
  • ProtocolAdapter trait dispatch for UDP relay final hop
  • ProtocolAdapter trait dispatch for inbound spawn
  • ProtocolAdapter trait dispatch for UDP outbound
  • ProtocolAdapter trait dispatch for TCP outbound
  • split vmess.rs (1006 lines) into 5 domain submodules
  • split vless.rs (1355 lines) into 7 domain submodules
  • remove unused super::* imports, fix api.rs ListenConfig import
  • extract per-protocol establish_*_outbound methods from dispatch match
  • split model.rs into 8 domain modules
  • converge bind dispatch to single ProtocolAdapter path

πŸ”§ Maintenance (27)

  • align socks5 udp upstream accounting
  • lock TODO boundary completion invariants
  • align runtime boundary guidance
  • lock protocol-owned config parsing boundary
  • lock managed datagram cache-key boundary
  • lock tcp relay chain inventory boundary
  • lock inbound glue dispatch boundaries
  • guard inbound protocol glue boundaries
  • guard stream framed response flushing
  • guard inbound protocol packet model leaks
  • avoid h2 boundary clippy warning
  • prevent cached handler downcasts
  • align packet path docs with capability split
  • clean boundary capability lint
  • lock adapter boundary structure
  • keep inventory protocol neutral
  • harden protocol crate dependencies
  • confine outbound config matching
  • pin mixed adapter boundary
  • forbid production todo markers
  • pin block outbound boundary
  • make registry tests imports explicit
  • run full workspace tests
  • clean low-risk clippy warnings
  • clean mechanical clippy warnings
  • enforce architecture boundaries
  • replace hand-rolled date math with time crate, rewrite AGENTS.md

πŸ“– Documentation (8)

  • tighten protocol response ownership boundary
  • record inbound udp boundary convergence
  • align boundary architecture docs
  • clarify nested policy selection
  • document protocol udp module boundary
  • update inbound udp helper boundary
  • document proxy boundary rules
  • reflect ProtocolAdapter trait dispatch boundaries

πŸ€– auto-generated by GitHub Actions