Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KNSoft.Quic

NuGet Downloads GitHub Actions Workflow Status GitHub License

KNSoft.Quic packages MsQuic:

  • Provides /MT and /MD DLLs, regular and LTCG static libraries, and bundled PGO profiles for Windows
  • Exposes function-table entries for direct calls
  • Integrates with Visual Studio through NuGet

Usage

Install KNSoft.Quic, then select Configuration Properties > KNSoft.Quic > Integration Mode.

Mode Artifact
DLL MT /MT DLL
DLL MD /MD DLL
Static Static library
Static LTCG LTCG static library
Static LTCG + Bundled PGO LTCG library with bundled PGO
Manual None; adds the library search path
None None

Function table (standard MsQuic usage)

#include <KNSoft.Quic.h>

const QUIC_API_TABLE* Api;
QUIC_STATUS Status = MsQuicOpenVersion(QUIC_API_VERSION_2, (const void**)&Api);
if (QUIC_SUCCEEDED(Status)) {
    MsQuicClose(Api);
}

Direct calls (KNSoft.Quic exposes the function-table entries)

QUIC_STATUS Status = KNSoftQuicInitialize();
if (QUIC_SUCCEEDED(Status)) {
    const QUIC_REGISTRATION_CONFIG Config = {
        "Application",
        QUIC_EXECUTION_PROFILE_LOW_LATENCY
    };
    HQUIC Registration;

    Status = MsQuicRegistrationOpen(&Config, &Registration);
    if (QUIC_SUCCEEDED(Status)) {
        MsQuicRegistrationClose(Registration);
    }
    KNSoftQuicUninitialize();
}

Compatibility

Windows user mode with Schannel. x86, x64, ARM64, and ARM64EC. LTCG builds require the matching MSVC toolset generation.

PGO

Profiles are trained with SecNetPerf using local and emulated-network scenarios defined in Training.json. Results and validation data are recorded in each platform's manifest.json under PGO.

.\PGO\Build-SecNetPerf.ps1
.\PGO\Train.ps1

License

KNSoft.Quic is licensed under the MIT License. It incorporates MsQuic, also licensed under the MIT License.

About

MsQuic wrapper for Win32

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages