9.1
Web Server Compress
| (require web-server-compress) | |
| package: web-server-compress-lib | |
Brotli compression middleware for the Racket web server.
procedure
(wrap-brotli-compress handler [ #:quality quality #:window window #:mode mode #:compress? compress?]) → (-> request? response?) handler : (-> request? response?) quality : quality/c = 5 window : window/c = 22 mode : mode/c = BROTLI_MODE_TEXT compress? : (-> response? boolean?) = compressible-mime-type?
Returns a new handler that compresses responses with Brotli when the client
sends Accept-Encoding: br and the response is deemed compressible.
Compressed responses include Content-Encoding: br and
Vary: Accept-Encoding headers. When compression does not apply, the
response passes through unchanged.
quality, window, and mode control the Brotli
encoder —
compress? overrides the built-in predicate that decides whether a response should be compressed. The default compresses text types (text/*) and common structured formats like application/json, application/xml, image/svg+xml, and others.
(require web-server-compress web-server/servlet-dispatch web-server/web-server) (define (app req) (response/xexpr '(html (body "hello")))) (serve #:dispatch (dispatch/servlet (wrap-brotli-compress app)) #:port 8080)