VpnHood.Net.Quic.MsQuic.AndroidNative
9.0.15
dotnet add package VpnHood.Net.Quic.MsQuic.AndroidNative --version 9.0.15
NuGet\Install-Package VpnHood.Net.Quic.MsQuic.AndroidNative -Version 9.0.15
<PackageReference Include="VpnHood.Net.Quic.MsQuic.AndroidNative" Version="9.0.15" />
<PackageVersion Include="VpnHood.Net.Quic.MsQuic.AndroidNative" Version="9.0.15" />
<PackageReference Include="VpnHood.Net.Quic.MsQuic.AndroidNative" />
paket add VpnHood.Net.Quic.MsQuic.AndroidNative --version 9.0.15
#r "nuget: VpnHood.Net.Quic.MsQuic.AndroidNative, 9.0.15"
#:package VpnHood.Net.Quic.MsQuic.AndroidNative@9.0.15
#addin nuget:?package=VpnHood.Net.Quic.MsQuic.AndroidNative&version=9.0.15
#tool nuget:?package=VpnHood.Net.Quic.MsQuic.AndroidNative&version=9.0.15
VpnHood.Net.Quic.MsQuic.AndroidNative
A self-contained native QUIC package for Android: MsQuic, Microsoft's QUIC library, built from this fork with OpenSSL for TLS, for Android 7.0 (API 24) and later. It ships:
- The
libmsquic.soper ABI (arm64-v8a,armeabi-v7a,x86_64) — built by CI and packed into the NuGet (it flows into the consuming APK aslib/<abi>/libmsquic.so). The.sois not committed; it's git-ignored (native/**/*.so) and produced fresh on each build. - The
Microsoft.QuicC# P/Invoke bindings — a committed, self-contained copy underBindings/with public types, picked up by the SDK's default.csglobbing.
It has no VpnHood dependencies. Its whole job is to hide the native-linking complexity behind one package reference.
Consuming it
Reference the package at the version you tested, as VpnHood.Net.Quic.Android does:
<PackageReference Include="VpnHood.Net.Quic.MsQuic.AndroidNative" Version="x.y.z" />
Every push to this repository's main publishes a new native build, so a floating version would take one
nobody has run on a device.
A consumer gets both the bundled .so (transitively, into the APK) and the bindings. Because the binding
types are public, consumers use them directly — no InternalsVisibleTo needed.
Publishing a new version
Push to main — GitHub Actions builds all ABIs, packs, and publishes 9.0.<run-number> to
nuget.org (see android/README.md).
No manual version bump and no local build needed.
For a local pack (rare): build the .so first with android/build-android.ps1; the
RefreshMsQuicNative MSBuild target copies it into native/<abi>/ before packing. Without a freshly
built .so the build fails on purpose — there is no committed binary to fall back on.
arm64-v8a, armeabi-v7a (32-bit ARM, needed for Android TV devices) and x86_64 are produced;
x86 is intentionally excluded.
License
MsQuic and its C# bindings are Microsoft's, under the MIT license, and the native library links OpenSSL,
under the Apache License 2.0. The package carries both texts in its licenses folder:
LICENSE and
THIRD-PARTY-NOTICES.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-android36.1 is compatible. |
-
net10.0-android36.1
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on VpnHood.Net.Quic.MsQuic.AndroidNative:
| Package | Downloads |
|---|---|
|
VpnHood.Net.Quic.Android
Android implementation of the VpnHood QUIC abstractions (IQuicClient/IQuicConnection/Stream) over MsQuic. All native linking (libmsquic.so) and the Microsoft.Quic P/Invoke bindings are provided by the VpnHood.Net.Quic.MsQuic.AndroidNative package; this project is pure managed code. |
GitHub repositories
This package is not used by any popular GitHub repositories.