diff --git a/Sources/Vapor/HTTP/Server/HTTPServer.swift b/Sources/Vapor/HTTP/Server/HTTPServer.swift index 135fa752fa..d0c5b0421a 100644 --- a/Sources/Vapor/HTTP/Server/HTTPServer.swift +++ b/Sources/Vapor/HTTP/Server/HTTPServer.swift @@ -474,6 +474,28 @@ extension ChannelPipeline { let http2 = HTTP2FramePayloadToHTTP1ServerCodec() handlers.append(http2) + // add response compressor if configured + switch configuration.responseCompression.storage { + case .enabled(let initialByteBufferCapacity): + let responseCompressionHandler = HTTPResponseCompressor( + initialByteBufferCapacity: initialByteBufferCapacity + ) + handlers.append(responseCompressionHandler) + case .disabled: + break + } + + // add request decompressor if configured + switch configuration.requestDecompression.storage { + case .enabled(let limit): + let requestDecompressionHandler = NIOHTTPRequestDecompressor( + limit: limit + ) + handlers.append(requestDecompressionHandler) + case .disabled: + break + } + // add NIO -> HTTP request decoder let serverReqDecoder = HTTPServerRequestDecoder( application: application