QuickProxyNet 4.0.0

dotnet add package QuickProxyNet --version 4.0.0
                    
NuGet\Install-Package QuickProxyNet -Version 4.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="QuickProxyNet" Version="4.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="QuickProxyNet" Version="4.0.0" />
                    
Directory.Packages.props
<PackageReference Include="QuickProxyNet" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add QuickProxyNet --version 4.0.0
                    
#r "nuget: QuickProxyNet, 4.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package QuickProxyNet@4.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=QuickProxyNet&version=4.0.0
                    
Install as a Cake Addin
#tool nuget:?package=QuickProxyNet&version=4.0.0
                    
Install as a Cake Tool

QuickProxyNet

High-performance, zero-dependency C# library for connecting through HTTP, HTTPS, SOCKS4, SOCKS4a and SOCKS5 proxies, and through the VPN-style protocols VLESS, VMess and Trojan. Returns a raw Stream for direct data access.

VLESS REALITY works in-process — the TLS 1.3 handshake it needs is implemented here (including the xtls-rprx-vision flow), so it costs no extra package and no external binary, and the zero-dependency promise still holds. Its ClientHello is not yet a browser fingerprint; see docs/reality-fingerprint-plan.md in the repository for what that means.

No companion package and no external binary are involved. The grpc and xhttp transports, Vision's TLS-in-TLS splice, and a genuine uTLS browser fingerprint are not implemented.

Targets: .NET 8 / .NET 9 / .NET 10 / .NET 11

Quick Start

Proxy.ConnectAsync takes the share link as a string and dispatches on the scheme itself — including vmess:// links, whose base64 payload System.Uri cannot parse.

// Works for http/https/socks4/socks4a/socks5/vless/trojan/vmess links
await using var stream = await Proxy.ConnectAsync(
    "socks5://user:pass@127.0.0.1:1080",
    "example.com", 443,
    TimeSpan.FromSeconds(5));

Or via extension method:

await using var stream = await new Uri("http://proxy:8080")
    .ConnectThroughProxyAsync("example.com", 443);

Features

  • Zero runtime dependencies (BCL only)
  • Zero-alloc protocol logic (ArrayPool, stackalloc, Utf8Formatter, ValueTask)
  • VLESS REALITY and xtls-rprx-vision in-process, no Xray binary
  • Structured errors: ProxyProtocolException with ProxyErrorCode enum
  • Per-connection timeouts with ProxyErrorCode.Timeout
  • Static API (Proxy.ConnectAsync) and factory API (ProxyClientFactory.Instance.Create(link))

Error Handling

try
{
    await using var stream = await Proxy.ConnectAsync(proxyLink, host, port,
        TimeSpan.FromSeconds(5));
}
catch (ProxyProtocolException ex) when (ex.ErrorCode == ProxyErrorCode.Timeout)
{
    // Timed out — ex.Message includes proxy and target host:port
}
catch (ProxyProtocolException ex) when (ex.ErrorCode == ProxyErrorCode.AuthFailed)
{
    // Wrong credentials
}

See full documentation for all error codes, the support matrix, and configuration options.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed.  net11.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net11.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on QuickProxyNet:

Package Downloads
McProtoNet.Core

Ядро McProtoNet

McProtoNet

High-performance library for working with the minecraft protocol

McProtoNet.Protocol

A library that supports multiversion

McProtoNet.Abstractions

Abstractions for McProtoNet

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on QuickProxyNet:

Repository Stars
Titlehhhh/Minecraft-Holy-Client
A high-performance platform for running Minecraft stress-test bots written in C#.
Version Downloads Last Updated
4.0.0 75 8/22/2026
3.0.0 278 3/8/2026
2.0.0 946 11/4/2024
2.0.0-preview.1.1.4.2 202 2/6/2024
2.0.0-preview.1.1.4 397 1/11/2024
2.0.0-preview.1.1 175 12/27/2023
0.1.4 517 10/25/2023
0.1.3 246 10/25/2023
0.1.1 275 10/25/2023

4.0.0 adds VLESS, VMess and Trojan outbounds next to the HTTP/SOCKS clients. VLESS REALITY and the xtls-rprx-vision flow are implemented in managed code — no Xray or other external binary. ProxyClientFactory.Create(string) and Proxy.ConnectAsync(string, host, port) take a link of any supported scheme, including vmess:// links that System.Uri cannot represent. No public type or member from 3.0.0 was removed or changed; the major bump covers new ProxyType/ProxyErrorCode members and Create(Uri) now returning a client for vless/trojan/vmess instead of throwing. Not included: grpc and xhttp transports, Hysteria2, and a browser-grade ClientHello fingerprint for REALITY. Full notes: https://github.com/Titlehhhh/QuickProxyNet/releases/tag/v4.0.0