Skip to content

Commit cf69ec0

Browse files
committed
[new release] hpack, h2, h2-mirage, h2-lwt, h2-lwt-unix and h2-async (0.9.0)
CHANGES: - h2: Fix tests on 32-bit platforms ([anmonteiro/ocaml-h2#152](anmonteiro/ocaml-h2#152)) - h2-mirage: adapt to Conduit v4 and remove `H2_mirage.Server_with_conduit` ([anmonteiro/ocaml-h2#154](anmonteiro/ocaml-h2#154)) - h2: fix memory leaks related to trailer headers in the server and client implementations ([anmonteiro/ocaml-h2#159](anmonteiro/ocaml-h2#159) (thanks [@quernd](https://github.com/quernd)!), [anmonteiro/ocaml-h2#160](anmonteiro/ocaml-h2#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 ([anmonteiro/ocaml-h2#163](anmonteiro/ocaml-h2#163), [anmonteiro/ocaml-h2#164](anmonteiro/ocaml-h2#164)) - h2: Split `Body.t` into `Body.Writer.t` and `Body.Reader.t` ([anmonteiro/ocaml-h2#165](anmonteiro/ocaml-h2#165)) - h2: OCaml 5.00 compatibility -- add `seeded_hash` to `scheduler.ml` ([anmonteiro/ocaml-h2#168](anmonteiro/ocaml-h2#168)) - h2: Use a tail-recursive version of `Angstrom.skip_many`. Fixes a memory leak in long-running connections e.g. gRPC ([anmonteiro/ocaml-h2#172](anmonteiro/ocaml-h2#172)) - h2-async: Add an OCaml-TLS client to `h2-async` ([anmonteiro/ocaml-h2#174](anmonteiro/ocaml-h2#174)) - h2: Fix a bug that caused different requests to share the same headers buffer under concurrency ([anmonteiro/ocaml-h2#182](anmonteiro/ocaml-h2#182))
1 parent 598a03c commit cf69ec0

File tree

6 files changed

+221
-0
lines changed
  • packages
    • h2-async/h2-async.0.9.0
    • h2-lwt-unix/h2-lwt-unix.0.9.0
    • h2-lwt/h2-lwt.0.9.0
    • h2-mirage/h2-mirage.0.9.0
    • h2/h2.0.9.0
    • hpack/hpack.0.9.0

6 files changed

+221
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
opam-version: "2.0"
2+
maintainer: "Antonio Monteiro <[email protected]>"
3+
authors: [ "Antonio Monteiro <[email protected]>" ]
4+
license: "BSD-3-clause"
5+
homepage: "https://github.com/anmonteiro/ocaml-h2"
6+
bug-reports: "https://github.com/anmonteiro/ocaml-h2/issues"
7+
dev-repo: "git+https://github.com/anmonteiro/ocaml-h2.git"
8+
doc: "https://anmonteiro.github.io/ocaml-h2/"
9+
build: [
10+
["dune" "build" "-p" name "-j" jobs]
11+
]
12+
depends: [
13+
"ocaml" {>= "4.06"}
14+
"dune" {>= "1.7"}
15+
"faraday-async"
16+
"async"
17+
"gluten-async"
18+
"h2" {>= version}
19+
]
20+
depopts: ["async_ssl"]
21+
synopsis: "Async support for h2"
22+
description: """
23+
h2 is an implementation of the HTTP/2 specification entirely in OCaml.
24+
h2-async provides an Async runtime implementation for h2.
25+
"""
26+
url {
27+
src:
28+
"https://github.com/anmonteiro/ocaml-h2/releases/download/0.9.0/h2-0.9.0.tbz"
29+
checksum: [
30+
"sha256=ee08d1849b369ae7d06c89805e22854fd999d641c64871f08c25593397f40b5e"
31+
"sha512=a226c64b8084688cc93e19fcf649d228d3e441949ea576ec3d89d5d29404ed07a2e0ed87539d48afc59c3cdd16b9621646ac98a1b62ceefc9c5dec57a73b9ec4"
32+
]
33+
}
34+
x-commit-hash: "8ad7db35248e2d321b993fc60390ccfdd54cb096"
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
opam-version: "2.0"
2+
maintainer: "Antonio Monteiro <[email protected]>"
3+
authors: [ "Antonio Monteiro <[email protected]>" ]
4+
license: "BSD-3-clause"
5+
homepage: "https://github.com/anmonteiro/ocaml-h2"
6+
bug-reports: "https://github.com/anmonteiro/ocaml-h2/issues"
7+
dev-repo: "git+https://github.com/anmonteiro/ocaml-h2.git"
8+
doc: "https://anmonteiro.github.io/ocaml-h2/"
9+
build: [
10+
["dune" "build" "-p" name "-j" jobs]
11+
]
12+
depends: [
13+
"ocaml" {>= "4.06"}
14+
"faraday-lwt-unix"
15+
"h2-lwt" {>= version}
16+
"dune" {>= "1.7"}
17+
"lwt"
18+
"gluten-lwt-unix" {>= "0.2.1"}
19+
]
20+
depopts: [
21+
"tls"
22+
"lwt_ssl"
23+
]
24+
synopsis: "Lwt + UNIX support for h2"
25+
description: """
26+
h2 is an implementation of the HTTP/2 specification entirely in OCaml.
27+
h2-lwt-unix provides an Lwt runtime implementation for h2 that targets UNIX
28+
binaries.
29+
"""
30+
url {
31+
src:
32+
"https://github.com/anmonteiro/ocaml-h2/releases/download/0.9.0/h2-0.9.0.tbz"
33+
checksum: [
34+
"sha256=ee08d1849b369ae7d06c89805e22854fd999d641c64871f08c25593397f40b5e"
35+
"sha512=a226c64b8084688cc93e19fcf649d228d3e441949ea576ec3d89d5d29404ed07a2e0ed87539d48afc59c3cdd16b9621646ac98a1b62ceefc9c5dec57a73b9ec4"
36+
]
37+
}
38+
x-commit-hash: "8ad7db35248e2d321b993fc60390ccfdd54cb096"

packages/h2-lwt/h2-lwt.0.9.0/opam

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
opam-version: "2.0"
2+
maintainer: "Antonio Monteiro <[email protected]>"
3+
authors: [ "Antonio Monteiro <[email protected]>" ]
4+
license: "BSD-3-clause"
5+
homepage: "https://github.com/anmonteiro/ocaml-h2"
6+
bug-reports: "https://github.com/anmonteiro/ocaml-h2/issues"
7+
dev-repo: "git+https://github.com/anmonteiro/ocaml-h2.git"
8+
doc: "https://anmonteiro.github.io/ocaml-h2/"
9+
build: [
10+
["dune" "build" "-p" name "-j" jobs]
11+
]
12+
depends: [
13+
"ocaml" {>= "4.06"}
14+
"h2" {>= version}
15+
"dune" {>= "1.7"}
16+
"lwt"
17+
"gluten-lwt" {>= "0.2.1"}
18+
]
19+
synopsis: "Lwt support for h2"
20+
description: """
21+
h2 is an implementation of the HTTP/2 specification entirely in OCaml. h2-lwt
22+
provides an Lwt runtime implementation for h2.
23+
"""
24+
url {
25+
src:
26+
"https://github.com/anmonteiro/ocaml-h2/releases/download/0.9.0/h2-0.9.0.tbz"
27+
checksum: [
28+
"sha256=ee08d1849b369ae7d06c89805e22854fd999d641c64871f08c25593397f40b5e"
29+
"sha512=a226c64b8084688cc93e19fcf649d228d3e441949ea576ec3d89d5d29404ed07a2e0ed87539d48afc59c3cdd16b9621646ac98a1b62ceefc9c5dec57a73b9ec4"
30+
]
31+
}
32+
x-commit-hash: "8ad7db35248e2d321b993fc60390ccfdd54cb096"
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
opam-version: "2.0"
2+
maintainer: "Antonio Nuno Monteiro <[email protected]>"
3+
authors: [ "Antonio Nuno Monteiro <[email protected]>" ]
4+
license: "BSD-3-clause"
5+
homepage: "https://github.com/anmonteiro/ocaml-h2"
6+
dev-repo: "git+https://github.com/anmonteiro/ocaml-h2.git"
7+
bug-reports: "https://github.com/anmonteiro/ocaml-h2/issues"
8+
doc: "https://anmonteiro.github.io/ocaml-h2/"
9+
build: [
10+
["dune" "build" "-p" name "-j" jobs]
11+
]
12+
depends: [
13+
"ocaml" {>= "4.06"}
14+
"faraday-lwt"
15+
"h2-lwt" {>= version}
16+
"gluten-lwt" {>= "0.2.0"}
17+
"dune" {>= "1.7"}
18+
"lwt"
19+
"gluten-mirage" {>= "0.3.0"}
20+
"conduit-mirage" {>= "2.0.2"}
21+
"mirage-flow" {>= "2.0.0"}
22+
"cstruct"
23+
]
24+
synopsis: "Mirage support for h2"
25+
description: """
26+
h2 is an implementation of the HTTP/2 specification entirely in OCaml.
27+
h2-mirage provides an Lwt runtime implementation for h2 that targets MirageOS
28+
unikernels.
29+
"""
30+
url {
31+
src:
32+
"https://github.com/anmonteiro/ocaml-h2/releases/download/0.9.0/h2-0.9.0.tbz"
33+
checksum: [
34+
"sha256=ee08d1849b369ae7d06c89805e22854fd999d641c64871f08c25593397f40b5e"
35+
"sha512=a226c64b8084688cc93e19fcf649d228d3e441949ea576ec3d89d5d29404ed07a2e0ed87539d48afc59c3cdd16b9621646ac98a1b62ceefc9c5dec57a73b9ec4"
36+
]
37+
}
38+
x-commit-hash: "8ad7db35248e2d321b993fc60390ccfdd54cb096"

packages/h2/h2.0.9.0/opam

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
opam-version: "2.0"
2+
maintainer: "Antonio Monteiro <[email protected]>"
3+
authors: [ "Antonio Monteiro <[email protected]>" ]
4+
license: "BSD-3-clause"
5+
homepage: "https://github.com/anmonteiro/ocaml-h2"
6+
bug-reports: "https://github.com/anmonteiro/ocaml-h2/issues"
7+
dev-repo: "git+https://github.com/anmonteiro/ocaml-h2.git"
8+
doc: "https://anmonteiro.github.io/ocaml-h2/"
9+
build: [
10+
["dune" "build" "-p" name "-j" jobs]
11+
]
12+
depends: [
13+
"ocaml" {>= "4.06"}
14+
"dune" {>= "1.7"}
15+
"alcotest" {with-test}
16+
"yojson" {with-test}
17+
"hex" {with-test}
18+
"base64" {>= "3.0.0"}
19+
"bigstringaf" {>= "0.5.0"}
20+
"angstrom" {>= "0.14.0"}
21+
"faraday" {>= "0.5.0"}
22+
"psq"
23+
"hpack"
24+
"httpaf"
25+
]
26+
synopsis:
27+
"A high-performance, memory-efficient, and scalable HTTP/2 library for OCaml"
28+
description: """
29+
h2 is an implementation of the HTTP/2 specification entirely in OCaml. It
30+
is based on the concepts in http/af, and therefore uses the Angstrom and
31+
Faraday libraries to implement the parsing and serialization layers of the
32+
HTTP/2 standard as a state machine that is agnostic to the underlying I/O
33+
specifics. It also preserves the same API as http/af wherever possible.
34+
"""
35+
url {
36+
src:
37+
"https://github.com/anmonteiro/ocaml-h2/releases/download/0.9.0/h2-0.9.0.tbz"
38+
checksum: [
39+
"sha256=ee08d1849b369ae7d06c89805e22854fd999d641c64871f08c25593397f40b5e"
40+
"sha512=a226c64b8084688cc93e19fcf649d228d3e441949ea576ec3d89d5d29404ed07a2e0ed87539d48afc59c3cdd16b9621646ac98a1b62ceefc9c5dec57a73b9ec4"
41+
]
42+
}
43+
x-commit-hash: "8ad7db35248e2d321b993fc60390ccfdd54cb096"

packages/hpack/hpack.0.9.0/opam

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
opam-version: "2.0"
2+
maintainer: "Antonio Nuno Monteiro <[email protected]>"
3+
authors: [ "Pieter Goetschalckx <[email protected]>"
4+
"Antonio Nuno Monteiro <[email protected]>" ]
5+
license: "BSD-3-clause"
6+
homepage: "https://github.com/anmonteiro/ocaml-h2"
7+
bug-reports: "https://github.com/anmonteiro/ocaml-h2/issues"
8+
dev-repo: "git+https://github.com/anmonteiro/ocaml-h2.git"
9+
doc: "https://anmonteiro.github.io/ocaml-h2/"
10+
depends: [
11+
"ocaml" {>= "4.04"}
12+
"dune" {>= "1.7"}
13+
"yojson" {with-test}
14+
"hex" {with-test}
15+
"angstrom"
16+
"faraday"
17+
]
18+
build: [
19+
["dune" "build" "-p" name "-j" jobs]
20+
]
21+
synopsis:
22+
"An HPACK (Header Compression for HTTP/2) implementation in OCaml"
23+
description: """
24+
hpack is an implementation of the HPACK: Header Compression for HTTP/2
25+
specification (RFC7541) written in OCaml. It uses Angstrom and Faraday for
26+
parsing and serialization, respectively.
27+
"""
28+
url {
29+
src:
30+
"https://github.com/anmonteiro/ocaml-h2/releases/download/0.9.0/h2-0.9.0.tbz"
31+
checksum: [
32+
"sha256=ee08d1849b369ae7d06c89805e22854fd999d641c64871f08c25593397f40b5e"
33+
"sha512=a226c64b8084688cc93e19fcf649d228d3e441949ea576ec3d89d5d29404ed07a2e0ed87539d48afc59c3cdd16b9621646ac98a1b62ceefc9c5dec57a73b9ec4"
34+
]
35+
}
36+
x-commit-hash: "8ad7db35248e2d321b993fc60390ccfdd54cb096"

0 commit comments

Comments
 (0)