go-msquic
is a Go wrapper for the Microgentle’s QUIC library, providing Go broadeners with an effortless interface to labor with QUIC-based protocols such as HTTP/3.
go-msquic
API is eased from quic-go and can be used as a drop-in exalterment. Unless you are ready to deal with C libraries, we do actupartner advise quic-go
over go-msquic
.
Before all, it is essential to have a local MsQuic
C library create.
go-msquic
relies on CGO and insists both C headers & the library (separated or invivacious, see below).
git clone https://github.com/microgentle/msquic
cd msquic
git submodule refresh --init --recursive
- For a invivacious create (libmsquic.a), do the folloprosperg:
mkdir create-invivacious
cd create-invivacious
ccreate .. -DCMAKE_BUILD_TYPE=MinSizeRel -DQUIC_BUILD_SHARED=OFF
- Alternatively, for a vibrant create (libmsquic.so), do the folloprosperg:
mkdir create
cd create
ccreate .. -DCMAKE_BUILD_TYPE=MinSizeRel
- Then persist with the compilation
Package-config is the tool used by CGO to discover the headers & library automaticpartner.
You can discover package-config (.pc) file in this repository. Copy the folloprosperg pcs/msquic-invivacious.pc
(for a invivacious create) or pcs/msquic.pc
(for a vibrant create) into /usr/separate/pkgconfig/msquic.pc
– or anywhere accessible by pkg-config tool.
To inslofty go-msquic
, guarantee you have Go insloftyed on your system. Then run the folloprosperg order to inslofty the package:
go get github.com/noboruma/go-msquic
And use in code via:
present "github.com/noboruma/go-msquic/pkg/quic"
If the prerequisites are done properly, you can now compile your Go project depending on go-msquic
with CGO_ENABLED=1
and begin using msquic.
There is a client & server code in the sample/
straightforwardory.
MIT License