版本发布 8
## Features - #1993, #2044 Support logging to file and syslog - #2026 HTTP Client support auto retry if cached connection was lost ## Miscellaneous - RUSTSEC-2025-0120, `json5` upgraded to v1.3 - MSRV bumps to v1.88 ## What's Changed * fix(shadowsocks-service): fix compilation without `aead-cipher` by @HanabishiRecca in https://github.com/shadowsocks/shadowsocks-rust/pull/1983 * fix(deps): update rust crate socket2 to 0.6 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/1984 * fix(deps): update rust crate dynosaur to 0.3.0 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/1987 * fix(docker): replace musl.cc by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1996 * chore: add sha512 to pin third-party musl-cross files by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1998 * feat: add selinux module by @f100024 in https://github.com/shadowsocks/shadowsocks-rust/pull/1995 * fix(deps): update rust crate notify to v8.2.0 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/1997 * chore: mismatched_lifetime_syntaxes warning by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1999 * chore(deps): bump slab from 0.4.10 to 0.4.11 in the cargo group by @dependabot[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2004 * chore: refactor Docker image building by @zonescape in https://github.com/shadowsocks/shadowsocks-rust/pull/2005 * fix(deps): update rust crate reqwest to v0.12.23 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2002 * fix(deps): update rust crate brotli to v8.0.2 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2007 * fix(deps): update rust crate clap to v4.5.45 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2003 * chore(deps): update actions/checkout action to v5 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2000 * fix(deps): update rust crate url to v2.5.7 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2010 * feat: file and advanced logging configuration for tracing by @shadowsocks69420 in https://github.com/shadowsocks/shadowsocks-rust/pull/1993 * fix(deps): update rust crate bson to v3 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2012 * chore(deps): bump tracing-subscriber from 0.3.19 to 0.3.20 in the cargo group by @dependabot[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2014 * fix(deps): update rust crate clap to v4.5.48 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2023 * chore: make clippy happy by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/2025 * fix(deps): update rust crate time to v0.3.44 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2022 * chore(deps): update rust docker tag to v1.90.0 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2021 * fix(deps): update rust crate tokio-rustls to v0.26.3 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2020 * fix(deps): update rust crate windows-sys to 0.61 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2015 * fix(deps): update rust crate serde to v1.0.226 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2019 * docs: fix acl documentation by @shadowsocks69420 in https://github.com/shadowsocks/shadowsocks-rust/pull/2027 * fix: fake ips should not be passed to ACL rules by @shadowsocks69420 in https://github.com/shadowsocks/shadowsocks-rust/pull/2029 * chore(deps): update actions/upload-artifact action to v5 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2036 * chore: make clippy happy by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/2038 * allow snap to install ssservice script by @leeylf in https://github.com/shadowsocks/shadowsocks-rust/pull/2039 * chore: specify regex dependency without unicode feature by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/2045 * fix(CI): freebsd/netbsd artifacts missing by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/2047 * chore(deps): update rust crate clap to v4.5.53 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2048 * chore: make syslog-tracing optional by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/2050 * chore(deps): update rust crate http to v1.4.0 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2051 * chore(deps): update actions/checkout action to v6 by @renovate[bot] in https://github.com/shadowsocks/shadowsocks-rust/pull/2049 * fix(deps): fix NetBSD build by updating rust crate mio to v1.1.1 by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/2052 * fix: bump msrv to 1.88 by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/2054 ## New Contributors * @HanabishiRecca made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/1983 * @f100024 made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/1995 * @zonescape made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/2005 * @shadowsocks69420 made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/1993 * @leeylf made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/2039 **Full Changelog**: https://github.com/shadowsocks/shadowsocks-rust/compare/v1.23.5...v1.24.0
## Features - #1963 Updated `once_cell::sync::Lazy` to `std::sync::LazyLock` - #1967 ACL supported `outbound_allow_list` - #1974 Allow customizable `SocketProtect` trait for Android VpnService ## Bug Fixes - #1966 Build `xdg` only on *nix platforms - #1968 Make `hickory-dns` truly optional ## What's Changed * chore: make clippy happy by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1955 * chore: replace once_cell::sync::Lazy with std::sync::LazyLock by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1963 * chore: use Self where applicable by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1964 * chore: compile xdg only on unix by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1966 * Impl AsRawFd and AsFd for UdpSocket by @zhangsan946 in https://github.com/shadowsocks/shadowsocks-rust/pull/1971 * fix(deps): update rust crate windows-sys to 0.60 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1973 * fix: make hickory-dns truly optional by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1968 * Allow user to pass SocketProtectFn for android by @zhangsan946 in https://github.com/shadowsocks/shadowsocks-rust/pull/1974 * chore: allow clippy::uninlined_format_args by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1981 ## New Contributors * @zhangsan946 made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/1971 **Full Changelog**: https://github.com/shadowsocks/shadowsocks-rust/compare/v1.23.4...v1.23.5
## Bug Fixes - shadowsocks/shadowsocks-android#3185 `local-dns`: Fixed skipping remote resolver for remote servers' names ## What's Changed * fix: domain name comparison in should_forward_by_query by @Mygod in https://github.com/shadowsocks/shadowsocks-rust/pull/1953 **Full Changelog**: https://github.com/shadowsocks/shadowsocks-rust/compare/v1.23.3...v1.23.4
## Bug Fixes - #1940 `local-tun`: Fixes `panic` when resizing cached buffers **Full Changelog**: https://github.com/shadowsocks/shadowsocks-rust/compare/v1.23.1...v1.23.2
## Features - #1922 `local-tun`: Enable congestion control algorithm for TCP connections - #1923 `local-tun`: Disable TCP package receive checksum for improving performance - `local-tun`: Buffer for receiving/sending packets from/to `tun` device are cached globally ## Bug Fixes - #1929 `outbound_bind_addr` for UDP sockets failed to `bind()` if it is an IPv4 address - Double check IPSK key length (AEAD-2022) when reading from configuration file ## What's Changed * fix(deps): update rust crate time to v0.3.41 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1924 * Apply outbound_bind_addr to UDP traffic in ssserver by @luujenn in https://github.com/shadowsocks/shadowsocks-rust/pull/1929 * chore(deps): bump openssl from 0.10.71 to 0.10.72 in the cargo group by @dependabot in https://github.com/shadowsocks/shadowsocks-rust/pull/1931 * chore: clippy fix by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1933 * fix(deps): update rust crate tokio to v1.44.2 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1932 * chore(deps): bump crossbeam-channel from 0.5.14 to 0.5.15 in the cargo group by @dependabot in https://github.com/shadowsocks/shadowsocks-rust/pull/1935 * fix: fixed build on android by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1936 * fix(deps): update rust crate clap to v4.5.36 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1937 * fix(deps): update rust crate brotli to v8 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1939 ## New Contributors * @luujenn made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/1929 **Full Changelog**: https://github.com/shadowsocks/shadowsocks-rust/compare/v1.23.0...v1.23.1
## What's Changed * fix(deps): update rust crate notify to v7 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1735 * fix(deps): update rust crate bloomfilter to v1.0.15 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1739 * fix(deps): update rust crate reqwest to v0.12.9 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1740 * fix(deps): update rust crate serde to v1.0.214 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1741 * fix(deps): update rust crate tun2 to v4 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1738 * fix(deps): update rust crate sysexits to v0.8.3 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1743 * fix(deps): update rust crate sysexits to v0.8.4 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1744 * fix(deps): update rust crate thiserror to v1.0.66 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1745 * chore(deps): update embarkstudios/cargo-deny-action action to v2 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1748 * chore(deps): update actions/checkout action to v4 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1747 * fix(deps): update rust crate thiserror to v1.0.67 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1749 * fix(deps): update rust crate idna to v1.0.3 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1750 * fix(deps): update rust crate thiserror to v1.0.68 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1751 * fix(deps): update rust crate url to v2.5.3 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1752 * fix(deps): update rust crate bloomfilter to v1.0.16 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1753 * Introducing shadowsocks Guru on Gurubase.io by @kursataktas in https://github.com/shadowsocks/shadowsocks-rust/pull/1755 * fix(deps): update rust crate bloomfilter to v2 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1754 * fix(deps): update rust crate tokio to v1.41.1 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1758 * fix(deps): update rust crate libc to v0.2.162 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1757 * fix(deps): update rust crate sysexits to v0.8.5 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1761 * fix: do not crash in ServerConfig::from_url() on unknown method by @link2xt in https://github.com/shadowsocks/shadowsocks-rust/pull/1762 * fix: flush local-tun tcp writer half before close by @AzazKamaz in https://github.com/shadowsocks/shadowsocks-rust/pull/1759 * fix(deps): update rust crate thiserror to v1.0.69 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1763 * fix(deps): update rust crate serde to v1.0.215 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1766 * fix(sslocal): disallow HTTP/SOCKS4 proxying when authentication required by @alaz in https://github.com/shadowsocks/shadowsocks-rust/pull/1765 * fix(deps): update rust crate clap to v4.5.21 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1767 * fix(deps): update rust crate flate2 to v1.0.35 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1768 * fix(deps): update rust crate libc to v0.2.164 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1769 * fix(deps): update rust crate thiserror to v2 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1756 * fix(deps): update rust crate serde_json to v1.0.133 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1771 * fix unknown variable error by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1772 * fix(deps): update rust crate hyper to v1.5.1 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1773 * fix(deps): update rust crate rustls-native-certs to v0.8.1 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1776 * fix(deps): update rust crate webpki-roots to v0.26.7 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1777 * fix(deps): update rust crate url to v2.5.4 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1779 * fix(deps): update rust crate libc to v0.2.165 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1781 * fix(deps): update rust crate libc to v0.2.166 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1782 * fix(deps): update rust crate blake3 to v1.5.5 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1783 * fix(deps): update rust crate tracing to v0.1.41 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1784 * fix(deps): update rust crate socket2 to v0.5.8 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1786 * fix(deps): update rust crate bytes to v1.9.0 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1787 * fix(deps): update rust crate smoltcp to 0.12 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1785 * fix(deps): update rust crate hickory-resolver to v0.25.0-alpha.4 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1788 * fix(deps): update rust crate snmalloc-rs to v0.3.7 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1789 * fix(deps): update rust crate libc to v0.2.167 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1791 * fix(deps): update rust crate tracing-subscriber to v0.3.19 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1792 * Allow IP fragmentation for outbound UDP sockets by @tom-ryan in https://github.com/shadowsocks/shadowsocks-rust/pull/1790 * fix(deps): update rust crate time to v0.3.37 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1797 * fix(deps): update rust crate bloomfilter to v3 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1795 * fix(deps): update rust crate tokio to v1.42.0 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1798 * fix(deps): update rust crate thiserror to v2.0.4 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1799 * fix(deps): update rust crate http to v1.2.0 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1800 * fix(deps): update rust crate clap to v4.5.22 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1801 * fix(deps): update rust crate tokio-rustls to v0.26.1 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1802 * fix(deps): update rust crate clap to v4.5.23 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1803 * chore(deps): update alpine docker tag to v3.21 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1804 * fix(deps): update rust crate thiserror to v2.0.5 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1806 * fix(deps): update rust crate thiserror to v2.0.6 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1807 * refactor: replace static with const for constants by @Integral-Tech in https://github.com/shadowsocks/shadowsocks-rust/pull/1805 * fix(deps): update rust crate libc to v0.2.168 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1808 * Add `UdpSocket::bind` by @MarkusPettersson98 in https://github.com/shadowsocks/shadowsocks-rust/pull/1810 * fix(deps): update rust crate serde to v1.0.216 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1811 * fix(deps): update rust crate thiserror to v2.0.7 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1813 * bugfix: local dns upstream udp packet buffer size 256 by @chuxi in https://github.com/shadowsocks/shadowsocks-rust/pull/1814 * fix(deps): update rust crate hyper to v1.5.2 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1815 * fix(deps): update rust crate thiserror to v2.0.8 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1816 * fix(deps): update rust crate libc to v0.2.169 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1817 * chore(deps): update rust crate env_logger to v0.11.6 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1818 * fix(deps): update rust crate tun to v0.7.6 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1819 * fix(deps): update rust crate thiserror to v2.0.9 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1822 * fix(deps): update rust crate serde_json to v1.0.134 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1821 * fix(deps): update rust crate reqwest to v0.12.10 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1824 * fix(deps): update rust crate tun to v0.7.9 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1825 * fix(deps): update rust crate reqwest to v0.12.11 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1826 * fix(deps): update rust crate serde to v1.0.217 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1827 * fix(deps): update rust crate tun to v0.7.10 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1828 * fix(deps): update rust crate reqwest to v0.12.12 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1830 ## New Contributors * @kursataktas made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/1755 * @alaz made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/1765 * @tom-ryan made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/1790 * @Integral-Tech made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/1805 * @MarkusPettersson98 made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/1810 **Full Changelog**: https://github.com/shadowsocks/shadowsocks-rust/compare/v1.21.2...v1.22.0
## Bug Fixes - #1730 `local-http`: HTTP Client removes Authority from Request URI only for HTTP/1.x
## Bug Fixes - #1730 `local-http`: The URI field in HTTP Request sent from `sslocal` should only contain path and query. ## What's Changed * chore(deps): bump thiserror from 1.0.63 to 1.0.64 by @dependabot in https://github.com/shadowsocks/shadowsocks-rust/pull/1666 * chore(deps): bump libc from 0.2.158 to 0.2.159 by @dependabot in https://github.com/shadowsocks/shadowsocks-rust/pull/1669 * chore(deps): bump async-trait from 0.1.82 to 0.1.83 by @dependabot in https://github.com/shadowsocks/shadowsocks-rust/pull/1668 * chore(deps): bump tun2 from 3.1.4 to 3.1.5 by @dependabot in https://github.com/shadowsocks/shadowsocks-rust/pull/1673 * chore(deps): bump flate2 from 1.0.33 to 1.0.34 by @dependabot in https://github.com/shadowsocks/shadowsocks-rust/pull/1672 * chore: Configure Renovate by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1680 * chore(deps): update dependency windows to v2.4.1 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1681 * fix(deps): update rust crate httparse to v1.9.5 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1682 * chore: clippy fix by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1695 * chore(deps): update alpine docker tag to v3.20 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1685 * fix(deps): update rust crate reqwest to v0.12.8 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1684 * chore(deps): update circleci/golang docker tag to v1.17 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1686 * fix(deps): update rust crate regex to v1.11.0 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1688 * chore(deps): update dependency windows to v5 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1689 * chore(deps): update docker/setup-buildx-action action to v3 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1693 * chore(deps): update softprops/action-gh-release action to v2 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1694 * chore(deps): update docker/metadata-action action to v5 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1692 * chore(deps): update docker/login-action action to v3 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1691 * chore(deps): update docker/build-push-action action to v6 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1690 * fix(deps): update rust crate once_cell to v1.20.1 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1687 * fix(deps): update rust crate tun2 to v3.1.7 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1699 * fix(deps): update rust crate ipnet to v2.10.1 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1701 * fix(deps): update rust crate clap to v4.5.19 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1696 * fix(deps): update rust crate brotli to v7 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1698 * Remove dependency on pwgen by @marek22k in https://github.com/shadowsocks/shadowsocks-rust/pull/1702 * fix(deps): update rust crate once_cell to v1.20.2 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1707 * fix(deps): update rust crate futures to v0.3.31 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1703 * fix(deps): update rust crate pin-project to v1.1.6 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1704 * chore: clippy fix by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1706 * fix(deps): update rust crate clap to v4.5.20 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1710 * fix(deps): update rust crate hyper to v1.5.0 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1714 * fix(deps): update rust crate libc to v0.2.160 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1716 * fix(deps): update rust crate serde_json to v1.0.129 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1717 * fix(deps): update rust crate libc to v0.2.161 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1718 * chore: suppress a clippy warning by @AaronChen0 in https://github.com/shadowsocks/shadowsocks-rust/pull/1719 * fix(deps): update rust crate serde_json to v1.0.131 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1720 * fix(deps): update rust crate serde_json to v1.0.132 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1721 * debian: fixup debian packaging build scripts by @mesher2024 in https://github.com/shadowsocks/shadowsocks-rust/pull/1722 * fix(deps): update rust crate bytes to v1.8.0 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1724 * fix(deps): update rust crate serde to v1.0.211 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1725 * fix(deps): update rust crate tun2 to v3.1.8 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1726 * fix(deps): update rust crate tokio to v1.41.0 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1727 * fix(deps): update rust crate serde to v1.0.213 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1728 * fix(deps): update rust crate thiserror to v1.0.65 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1729 * fix(deps): update rust crate pin-project to v1.1.7 by @renovate in https://github.com/shadowsocks/shadowsocks-rust/pull/1732 ## New Contributors * @renovate made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/1680 * @marek22k made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/1702 * @mesher2024 made their first contribution in https://github.com/shadowsocks/shadowsocks-rust/pull/1722 **Full Changelog**: https://github.com/shadowsocks/shadowsocks-rust/compare/v1.21.0...v1.21.1