Skip to content

Releases: anmonteiro/ocaml-h2

0.13.0

04 Sep 18:31
Compare
Choose a tag to compare

CHANGES:

  • h2: surface (body) write failures through flush
    (#247)
    • Body.Writer.flush now takes a callback of the type
      ([ `Written | ` Closed] -> unit), informing the caller whether the
      previous writes have been written or whether the output channel was
      closed.

0.12.0

23 Jun 22:40
Compare
Choose a tag to compare

CHANGES:

  • hpack: fix huffman encoding for codes > 24bit
    (#229)
  • h2-eio: don't require Eio_unix.stream_socket_ty, allowing the use of mock
    sockets (#236)
  • h2: drop the dependency on httpaf, use
    httpun-types instead
    (#243)
  • hpack: use String.unsafe_get when the string length is known
    (#244)

0.11.0

26 Oct 17:49
Compare
Choose a tag to compare

CHANGES:

  • h2-eio: adapt to Eio v0.12
    (#225)
  • h2-eio: track sw for gluten
    (#215)
  • h2: Add hpack {= version} constraint
    (#214)
  • h2, hpack, h2-async: Add opam constraints for angstrom and gluten-async
    (#212)

0.10.0

17 Mar 22:20
fff323e
Compare
Choose a tag to compare

CHANGES:

  • hpack: fix a case where hpack would raise an array out of bounds exception
    (#183)
    (@jonathanjameswatson)
  • h2: (client) handle multiple RST_STREAM frames
    (#184)
    (@jonathanjameswatson)
  • h2: (client) Fix a race condition with ~flush_headers_immediately:false and
    empty request bodies
    (#186)
  • h2: Make H2.Reqd.error_code part of the public interface
    (#188)
  • h2: Add ~request_method argument to H2.Method.body_length
    (#190)
    (@jonathanjameswatson)
  • h2: Don't send any frames on a stream after an RST_STREAM frame
    (#187,
    #194)
  • h2: call error handler on the client if the remote peer closes the
    commmunication channel
    (#177,
    #196)
  • h2: when reprioritizing a stream, respect its new priority (accounts for
    inferred default priority when a dependent stream is not in the tree
    (RFC7540§5.3.1))
    (#200)
  • h2: don't remove parent streams from the scheduler if they have children
    (#201)
  • h2: don't schedule streams as dependencies of others marked for removal
    (#205)
  • h2: revise scheduling algorithm to avoid starvation
    (#199,
    #204, reported in
    #162, thanks
    @quernd)
  • h2-eio: adapt to the next gluten-eio version
    (#210)

0.9.0

15 Aug 04:49
Compare
Choose a tag to compare

CHANGES:

  • h2: Fix tests on 32-bit platforms
    (#152)
  • h2-mirage: adapt to Conduit v4 and remove H2_mirage.Server_with_conduit
    (#154)
  • h2: fix memory leaks related to trailer headers in the server and client
    implementations (#159
    (thanks @quernd!),
    #160)
  • h2: allow configuring flush_headers_immediately on the client and default
    to false. This means that h2 will wait for the first request body bytes to
    be scheduled and batch HEADERS and DATA frames when sending requests
    (#163,
    #164)
  • h2: Split Body.t into Body.Writer.t and Body.Reader.t
    (#165)
  • h2: OCaml 5.00 compatibility -- add seeded_hash to scheduler.ml
    (#168)
  • h2: Use a tail-recursive version of Angstrom.skip_many. Fixes a memory leak
    in long-running connections e.g. gRPC
    (#172)
  • h2-async: Add an OCaml-TLS client to h2-async
    (#174)
  • h2: Fix a bug that caused different requests to share the same headers buffer
    under concurrency (#182)

0.8.0

12 Apr 02:46
Compare
Choose a tag to compare

CHANGES:

  • h2: scheduler: fix bug that caused zero length DATA frames not to be sent if
    there were no flow-control credits
    (#142) -- reported by
    @blandinw
  • h2,h2-lwt,h2-lwt-unix,h2-async,h2-mirage Add trailers_handler to
    Connection.request (#146)
  • h2: client / server: fix a security issue that allowed a malicious peer to
    make h2 allocate as much as it wanted
    (#149)

0.7.0

09 Aug 18:00
72c4a31
Compare
Choose a tag to compare

CHANGES:

0.6.1

17 May 01:29
8a88101
Compare
Choose a tag to compare

CHANGES:

0.6.0

30 Apr 03:09
b7ed53e
Compare
Choose a tag to compare

CHANGES:

  • h2-async: add Async adapter
    (#94)
  • h2-lwt: Close the communication channel after shutting down the client
    (#108)
  • h2-lwt-unix: fix premature SSL termination in the SSL / TLS runtimes
    (#109)
  • h2-lwt-unix: TLS runtime: adapt to TLS v0.11.0
    (#109)
  • h2-lwt-unix: feed EOF to the state machine if the socket has been closed --
    this is especially important on the client because it allows connections to
    terminate cleanly. (#112)
  • h2: Refactor the Settings module API
    (#113)
  • h2-lwt, h2-lwt-unix: Use gluten to
    implement the Lwt-based runtimes
    (#114)
  • h2: set a lower bound on Angstrom 0.14.0
    (#118)
  • h2: in the client implementation, don't report an error if the server has
    sent an RST_STREAM frame after sending a complete response
    (#119).
  • h2-mirage: Use gluten to implement
    h2-mirage (#120)

0.5.0

20 Dec 06:11
82be9d1
Compare
Choose a tag to compare

CHANGES: