packages feed

datastar-hs-brotli 1.0.0.0 → 1.0.1.0

raw patch · 4 files changed

+15/−5 lines, 4 filesdep +http-typesPVP ok

version bump matches the API change (PVP)

Dependencies added: http-types

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,5 +1,13 @@ # Revision history for datastar-hs-brotli +## 1.0.1.0 -- 2026-11-11++* Change `defaultBrotliParams` (and so `brotli`) to use less memory per open+  stream: the window drops from 24 bits (16 MB) to 22 bits (4 MB), and the+  quality goes from 5 to 6. The mode stays `CompressionModeText`. Use+  `brotliWith` to choose other settings+  ([#10](https://github.com/starfederation/datastar-haskell/issues/10)).+ ## 1.0.0.0 -- 2026-07-04  * First release. `Hypermedia.Datastar.Compression.Brotli`, split out of
datastar-hs-brotli.cabal view
@@ -1,12 +1,12 @@ cabal-version:   3.0 name:            datastar-hs-brotli-version:         1.0.0.0+version:         1.0.1.0 synopsis:        Brotli compressor for datastar-hs description:   @br@ (Brotli) @Content-Encoding@ compressor for   <https://hackage.haskell.org/package/datastar-hs datastar-hs> SSE streams.   Brotli compresses extremely well on SSE streams that repeatedly patch-  similar HTML fragments.+  similar HTML elements.   .   Links against the system Brotli C library: @brew install brotli@ on macOS,   @apt-get install libbrotli-dev pkg-config@ on Debian/Ubuntu.@@ -63,6 +63,7 @@     , datastar-hs     , datastar-hs-brotli     , hspec+    , http-types     , wai   default-language: Haskell2010   default-extensions:
src/Hypermedia/Datastar/Compression/Brotli.hs view
@@ -62,6 +62,6 @@ defaultBrotliParams =   B.defaultCompressParams     { B.compressMode = B.CompressionModeText-    , B.compressLevel = B.CompressionLevel5-    , B.compressWindowSize = B.CompressionWindowBits24+    , B.compressLevel = B.CompressionLevel6+    , B.compressWindowSize = B.CompressionWindowBits22     }
test/Hypermedia/Datastar/Compression/BrotliSpec.hs view
@@ -7,17 +7,18 @@ import Data.ByteString.Lazy qualified as BL import Data.IORef +import Network.HTTP.Types (ResponseHeaders) import Network.Wai (defaultRequest, requestHeaders) import Network.Wai.Internal (Response (..))  import Hypermedia.Datastar import Hypermedia.Datastar.Compression.Brotli (brotli)-import Hypermedia.Datastar.Logger (nullLogger) import Hypermedia.Datastar.WAI (compressorWrap)  {- | Drive a streaming WAI response to completion, returning its response headers and the full raw body. -}+runStream :: Response -> IO (ResponseHeaders, BL.ByteString) runStream (ResponseStream _status headers body) = do   ref <- newIORef mempty   body (\chunk -> modifyIORef' ref (<> chunk)) (pure ())