NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #3 by repository stars
Last release 26 days ago
09 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Rarely documented
notes for 10 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
240 releases · first in 2016
UDP packet payloads for ordinary UDP proxies and SUDP now use a dedicated binary codec when frpc and frps successfully negotiate the capability under
UDPPacket when the peer does not support or did not negotiate the capability.pool_count. Negative values are now rejected before work-connection pool resources are allocated.frpc verify ignoring configured featureGates, which caused VirtualNet configurations to be rejected even when the feature was enabled.customDomains under the configured subDomainHost to be registered using mixed-case domain names.One column per quarter.
HTTP vhost servers no longer support HTTP/1.1 Upgrade: h2c requests. Cleartext HTTP/2 prior-knowledge remains supported.
Upgrade: h2c requests. Cleartext HTTP/2 prior-knowledge remains supported.Expanded the frps dashboard API v2 migration across Clients, Proxies, Server Overview, Client Detail, and Proxy Detail, covering paginated users/clien
tls2raw client plugin now writes the proxy protocol header to the local raw connection when proxy protocol is enabled.transport.wireProtocol = "v2" now also applies to UDP-based proxy payloads, including ordinary UDP and SUDP, so their payload framing is consistent wi
transport.wireProtocol = "v2" now also applies to UDP-based proxy payloads, including ordinary UDP and SUDP, so their payload framing is consistent with the selected wire protocol.transport.wireProtocol deployments, allowing frps to bridge payloads between v1/default and v2 SUDP clients.NatHoleSid messages now follow the selected transport.wireProtocol.transport.wireProtocol = "v2" for SUDP, upgrade both the proxy and visitor frpc instances first, or keep them on v1 until both sides are upgraded.The existing wire protocol is difficult to extend without compatibility risk, and upcoming changes, including replacing deprecated stream encryption m…
Starting with v0.69.0, each minor release is supported until there are nine newer minor releases. For example, v0.69.0 will be supported until v0.78.0 is released. Within this window, frpc v0.69.0 is guaranteed to work with any frps from v0.61.0 to v0.77.0, and vice versa. Patch releases within the same minor are always compatible. Versions outside the support window may continue to work on a best-effort basis, but compatibility is no longer guaranteed.
For mixed-version deployments, upgrade frps first, then upgrade frpc. This keeps the server side ready for newer client-side protocol behavior before clients start using it.
This release introduces wire protocol v2 as a transition path for future frpc/frps protocol changes. The existing wire protocol is difficult to extend without compatibility risk, and upcoming changes, including replacing deprecated stream encryption methods, require a versioned protocol.
The default value of transport.wireProtocol remains v1 in this release. Users can keep the default for now. To test v2 early, upgrade both frpc and frps to versions that support it, then set transport.wireProtocol = "v2" in frpc. A v2-enabled frpc cannot connect to an older frps.
When transport.wireProtocol = "v2" is enabled, the control channel uses negotiated AEAD encryption after the login handshake. Both frpc and frps must be upgraded to this release to use v2.
v1 will be deprecated when v2 becomes the default in a future release. It will continue to be supported until v0.78.0 is released, and may be removed in v0.78.0 or later.
transport.wireProtocol for frpc to select the internal message protocol used between frpc and frps. Supported values are v1 and v2./api/clients API. Online clients now report their negotiated protocol as v1 or v2.xchacha20-poly1305 and aes-256-gcm; frpc advertises its preferred order based on local AES-GCM hardware support, and frps selects the first supported algorithm from that list.Fixed a configuration-dependent authentication bypass in type = "http" proxies when routeByHTTPUser is used together with httpUser / httpPassword . Th
type = "http" proxies when routeByHTTPUser is used together with httpUser / httpPassword. This affected proxy-style requests. Proxy-style authentication failures now return 407 Proxy Authentication Required.Nothing published for this version
Added a built-in store capability for frpc, including persisted store source ( [store] path = "..." ), Store CRUD admin APIs ( /api/store/proxies* , /
store capability for frpc, including persisted store source ([store] path = "..."), Store CRUD admin APIs (/api/store/proxies*, /api/store/visitors*) with runtime reload, and Store management pages in the frpc web dashboard.noweb build tag to allow compiling without frontend assets. make build now auto-detects missing web/*/dist directories and skips embedding, so a fresh clone can build without running make web first. The dashboard gracefully returns 404 when assets are not embedded..toml files, syntax errors now return immediately with parser position details (line/column when available) instead of falling through to YAML/JSON parsing, and TOML type mismatches report field-level errors without misleading line numbers.expires_in.frpc now supports a clientID option to uniquely identify client instances. The server dashboard displays all connected clients with their online/offli
clientID option to uniquely identify client instances. The server dashboard displays all connected clients with their online/offline status, connection history, and metadata, making it easier to monitor and manage multiple frpc deployments.HTTPS proxies now support load balancing groups. Multiple HTTPS proxies can be configured with the same loadBalancer.group and loadBalancer.groupKey t
loadBalancer.group and loadBalancer.groupKey to share the same custom domain and distribute traffic across multiple backend services, similar to the existing TCP and HTTP load balancing capabilities.enabled flag (defaults to true), letting you disable specific entries without relying on the global start list—disabled blocks are skipped when client configs load.tokenSource field to dynamically obtain tokens from external sources. You can use type = "file" to read a token from a file, or type = "exec" to run an external command (e.g., a cloud CLI or secrets manager) and capture its stdout as the token. The exec type requires the --allow-unsafe=TokenSourceExec CLI flag for security reasons.Add NAT traversal configuration options for XTCP proxies and visitors. Support disabling assisted addresses to avoid using slow VPN connections during
trustedCaFile, insecureSkipVerify, and proxyURL options for OIDC token endpoint connections.proxy_counts_detailed metric that includes both proxy type and proxy name labels, enabling monitoring of individual proxy connections instead of just aggregate counts.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →