Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages