http2-client-effectful 1.0.0 → 1.0.1
raw patch · 3 files changed
+13/−7 lines, 3 filesdep ~effectfuldep ~http2PVP ok
version bump matches the API change (PVP)
Dependency ranges changed: effectful, http2
API changes (from Hackage documentation)
Files
- CHANGELOG.md +6/−0
- http2-client-effectful.cabal +4/−4
- src/Effectful/Http2Client.hs +3/−3
CHANGELOG.md view
@@ -5,6 +5,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## [1.0.1] - 2026-10-01++### Changed++- Removed redundant environment cloning and lock allocation per HTTP/2 stream in `withHttp2Stream` and push-promise handling. Streams now run synchronously on the calling thread without overhead.+ ## [1.0.0] - 2026-07-07 ### Added
http2-client-effectful.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: http2-client-effectful-version: 1.0.0+version: 1.0.1 synopsis: Effectful bindings for the http2-client library description: Adaptation of the @<https://hackage.haskell.org/package/http2-client http2-client>@ library for the @<https://hackage.haskell.org/package/effectful effectful>@ ecosystem.@@ -13,7 +13,7 @@ bug-reports: https://issues.digital-autonomy.institute category: Web build-type: Simple-extra-source-files:+extra-doc-files: CHANGELOG.md common common@@ -50,9 +50,9 @@ build-depends: base >=4.10 && <5, bytestring >=0.12 && <0.13,- effectful >=2.6 && <2.7,+ effectful >=2.6 && <2.8, http-types >=0.12 && <0.13,- http2 >=5.3 && <5.4,+ http2 >=5.3 && <5.5, http2-client >=0.10 && <0.11, mtl >=2.3 && <2.4,
src/Effectful/Http2Client.hs view
@@ -15,7 +15,7 @@ -- and client teardown, so the rest of the operations here can be used -- directly in your effect stack. ----- = Example Usage+-- = Example usage -- -- === Opening a connection and running a client --@@ -341,7 +341,7 @@ , _sendDataChunk = \flagMod dat -> unsafeRunClientIO (Client._sendDataChunk stream flagMod dat) , _handlePushPromise = \sid hdrs handler -> either throwError pure- =<< unsafeConcUnliftIO Ephemeral (Limited 1) \unlift -> Client.runClientIO do+ =<< unsafeSeqUnliftIO \unlift -> Client.runClientIO do let unliftClientIO :: Eff es b -> ClientIO b unliftClientIO = ExceptT . unlift . runErrorNoCallStack @ClientError . inject Client._handlePushPromise@@ -390,7 +390,7 @@ withHttp2Stream f = do Http2Client client <- getStaticRep either throwError pure- =<< unsafeConcUnliftIO Ephemeral (Limited 1) \unlift -> Client.runClientIO do+ =<< unsafeSeqUnliftIO \unlift -> Client.runClientIO do let unliftClientIO :: Eff es b -> ClientIO b unliftClientIO = ExceptT . unlift . runErrorNoCallStack @ClientError . inject Client._startStream client $ unliftStreamDefinition unliftClientIO . f . liftHttp2Stream client