mkdir gnalloy-app && cd gnalloy-app
go mod init example.com/gnalloy-app
go get gnalloy.org/codec-http3@dev
go doc gnalloy.org/codec-http3The current source tree exposes these package import paths:
gnalloy.org/codec-http3gnalloy.org/codec-http3/http1bridge
Use go doc against the package that matches the behavior you need:
go doc gnalloy.org/codec-http3
go doc gnalloy.org/codec-http3/http1bridgeSelected current exported entry points:
const DefaultMaxFrameSize = 16 * 1024 * 1024 ...const HandlerNameHTTP3FrameDecoder = "http3-frame-decoder" ...const SettingQPACKMaxTableCapacity uint64 = 0x01 ...const SettingEnableConnectProtocol uint64 = 0x08 ...const WebTransportProtocolH3 = "webtransport-h3" ...var ErrInvalidFrame = errors.New("http3: invalid frame") ...var ErrInvalidHeadersBlock = errors.New("gnalloy/codec/http3/http1bridge: invalid headers block")func HeadersBlockFromRequest(req http1.Request, scheme string) http3.HeadersBlockfunc HeadersBlockFromResponse(resp http1.Response) http3.HeadersBlockfunc HeadersBlockFromTrailers(trailers http1.Headers) http3.HeadersBlockfunc RequestFromHeadersBlock(block http3.HeadersBlock) (http1.Request, error)func ResponseFromHeadersBlock(block http3.HeadersBlock) (http1.Response, error)
Repository tests are executable examples of supported behavior. Start with the selected names below, then read the matching _test.go files for complete setup and assertions. See Testing and Performance for the complete discovered list.
GOWORK=off GOTOOLCHAIN=local go test ./... -run Test -count=1Selected current test, benchmark, fuzz, and example entry points:
BenchmarkDecoderDataFrameBenchmarkHeaderDecoderFragmentedBlockFuzzHTTP3FramePipelineTestAppendAndDecodePushPromiseTestControlStreamRejectsDataAfterSettingsTestControlStreamRequiresSettingsFirstTestDecoderParsesDataFrameZeroCopyTestDecoderParsesSettingsAndRejectsDuplicateTestEncoderWritesHeadersFrameWithoutCopyingPayloadTestFrameToHTTPObjectCodecClientOutboundObjectStreamTestFrameToHTTPObjectCodecServerInboundObjectStreamTestHeaderCodecRoundTripHeadersBlockTestHeaderCodecRoundTripPushPromiseBlockTestHeaderDecoderEnforcesHeaderListSizeTestHeaderDecoderUsesReadableSlicesInsteadOfBytesTestHTTP3PipelineRejectsInvalidConfigTestLifecycleHandlerFiresControlEventsAndPropagatesFramesTestLocalControlStreamPipelineWritesSettingsOnActive
Direct Gnalloy dependencies for this module:
gnalloy.org/codec-http1gnalloy.org/gnalloy
Assembly guidance:
- Use this codec above a byte-oriented or datagram transport and below application handlers.
- The codec converts bytes or Gnalloy messages into protocol objects and converts outbound protocol objects back to bytes.
- It does not open sockets, own EventLoops, or define application lifecycle.
For sustained load, wire this module into a scenario under gnalloy.org/benchmarks or a runnable client under gnalloy.org/examples when the module participates in network traffic. Record host, OS, CPU, Go version, protocol, payload, concurrency, warmup, repetitions, throughput, and p99 latency in the report.