Releases: mirage/ocaml-conduit
Support latest Async and improve IPv4/6 resolution logic
v1.0.2
Fix mirage-conduit linkage
Port to jbuilder and separate opam packages
Port build to jbuilder, and break up OPAM packages into multiple
independent packages instead of being optional dependencies against
the main conduit
package. This makes it significantly easier to
depend on precisely the libraries you need, but requires porting
applications to use the new ocamlfind
and opam
scheme.
The new package layout is:
conduit
: the mainConduit
moduleconduit-lwt
: the portable Lwt implementationconduit-lwt-unix
: the Lwt/Unix implementationconduit-async
the Jane Street Async implementationmirage-conduit
: the MirageOS compatible implementation
In each of these packages, the opam
and ocamlfind
package
names are now the same, so you will need to rename the former
subpackages such as conduit.async
to conduit-async
. The
implementation is otherwise the same, so no other code changes
should be required.
In return for these breaking changes to the packaging, it is
now significantly easier to depend on a particular backend,
also for us to rev the interfaces towards a stable 1.0 release.
Jbuilder also builds the source tree around 4x faster than it
did previously.
There are still some optional dependencies remaining, most
notably the tls
and ssl
packages. If they are present,
then conduit will be compiled with TLS support.
Port to jbuilder
This breaks out conduit into five separate OPAM packages:
- conduit
- conduit-async
- conduit-lwt-unix
- conduit-lwt
- mirage-conduit
This is a prerelease to test conduit on mirage/mirage-dev
MirageOS 3 compatibility
CA Certificates in Async. Fix leaks
- Add support for CA certificates in Conduit_async.serve.
- Fix file descriptor leak in Lwt backend (#101 from @hannesm).
- Server in
Conduit_lwt_tls
waits for a user callback to finish
before accepting more connections. Instead, it should only wait
until the connection is accepted and detach client callback (#97). - Close socket when
ssl_accept
fails, e.g. when cipher negotiation
mismatch (#104).
Support MacOS X launchd
Add a Launchd
argument for the Conduit_lwt_unix server listener to support the MacOSX service launcher (#96).
Improvement to the MirageOS API, and expose Async SSL's server version
- Expose a new functor
Conduit_mirage.With_tcp
(#92, by @Drup) - Expose a new functor:
Resolver_mirage.Make_with_stack
to build a DNS
resolver using an existing network stack (#92, by @Drup) - Expose
Resolver_mirage.S
, the signature for Mirage's conduit resolvers than
can perform DNS lookups. These resolvers now expose theirDNS
implmentation
as a submodule (#92, by @Drup) - Expose a ?version arg in Conduit_async_ssl.ssl_listen, default being TLS 1.2
(#94, by @vbmithr)
Fix custom contexts on Lwt and client peer address handling
- Do not ignore custom context when calling
Conduit_lwt_unix_ssl.accept
(reported by @jrb467 in #88) Conduit_lwt_unix.Serve
now passes the clientflow
to the server
callback instead of the listening server one. This lets servers
retrieve the peer endpoint correctly (reported by @fxfactorial in #87)