Skip to content

Repository files navigation

Glyph3.NET

HTTP/3 without the QUIC: frame parsing, QPACK and request dispatch in pure managed C#, with no native dependencies. Glyph3 does no I/O of its own: you hand it the bytes that arrived on a stream and it hands back the bytes to send, so the transport underneath can be System.Net.Quic, io_uring, or a pair of in-memory queues in a test.

// Two methods is the whole transport contract; the rest have defaults.sealedclassMyTransport:IHttp3Transport{publiclongOpenUniStream()=>/* your QUIC connection */;publicvoidSend(longstreamId,ReadOnlySpan<byte>data,boolfin)=>/* ... */;}varh3=newHttp3Connection(newMyTransport(), request =>request.Path.Span.SequenceEqual("/"u8)?Http3Response.Text("hello\n"):Http3Response.Text("not found\n",status:404));h3.Start();// control stream + SETTINGSh3.Feed(streamId,bytes,fin);// whatever arrived, as many times as you likeh3.Flush();// dispatch whatever became complete

A working HTTP/3 server over System.Net.Quic is in Playground/Glyph3.Playground.MsQuic:

dotnet run -c Release --project Playground/Glyph3.Playground.MsQuic
curl --http3 -k https://127.0.0.1:8443/

About

nothing here to see

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages