Skip to content

Releases: mirage/capnp-rpc

1.2.3

23 Feb 14:03
86427f6
Compare
Choose a tag to compare

CHANGES:

1.2.2

24 Jan 09:41
8bca1b5
Compare
Choose a tag to compare

CHANGES:

1.2.1

05 Nov 10:41
fddf3fa
Compare
Choose a tag to compare

CHANGES:

v1.2

10 Jun 10:03
a2f1b2f
Compare
Choose a tag to compare

CHANGES:

  • Don't crash if the peer disconnects before the bootstrap reply is ready (@talex5 #234).
    When replying to a normal question we checked that the answer was still needed before trying to reply, but didn't for bootstrap requests.

  • Replace wait_until_settled with safer await_settled (@talex5 #233).
    wait_until_settled makes it too easy to ignore errors.

  • Require fmt >= 0.8.7 for kstr and set OCaml 4.08 as the minimum version everywhere (@talex5 #232).
    Older versions aren't tested in CI because the unix and mirage packages require at least OCaml 4.08.

v1.1

27 Apr 09:46
4c92232
Compare
Choose a tag to compare

CHANGES:

  • Update to latest X509, TCP and TLS APIs (@talex5 @hannesm #228).

  • Add Service.fail_lwt convenience function (@talex5 #229).

  • Remove confusing debug details from call_for_value_exn errors (@talex5 #230).
    The hidden information is now logged (at debug level) instead.

  • Configure TCP keep-alives for incoming connections, not just outgoing ones (@talex5 #227).
    This is needed when the client machine crashes without resetting the connection.

  • Include version number in opam license field (@talex5 #226).

v1.0

06 Apr 13:42
c565f59
Compare
Choose a tag to compare

CHANGES:

  • Skip the setting of object_id if it is empty (@LasseBlaauwbroek #224).
    This improves interoperability with the C++ implementation.

  • Use open_in_bin instead of open_in for Windows compatibility (@MisterDA #222).

v0.9.0

28 Dec 12:06
48ab696
Compare
Choose a tag to compare

CHANGES:

  • Add connection progress indicator (@talex5 #220).
    Clients can now use Capnp_rpc_unix.with_cap_exn to show a progress indicator while waiting to connect.
    It will use the log if enabled.
    If not, but stderr is a tty, it shows a message while connecting and then erases it (if connecting takes longer than 0.5s).
    If stderr is not a tty, it just prints a message there.

  • Use Mirage_crypto_rng_lwt.initialize instead of Mirage_crypto_rng_unix.initialize (@hannesm #217).
    The former periodically feeds entropy to the RNG, while the latter seeds the RNG only once.

  • Set TCP_KEEPIDLE=60 if possible (@talex5 #214).
    Cap'n Proto connections tend to be long lived and we therefore turn on the SO_KEEPALIVE option.
    However, the default keepalive timeout of 2 hours is much too long for some networks.
    In particular, Docker's libnetwork silently drops idle connections after about 10 minutes.

Windows support:

  • Prevent crash if ExtUnix wasn't built with sockopt (@MisterDA #218).
    If ExtUnix isn't built with sockopt then the symbol have_sockopt_int isn't available and an exception is raised.
    This may be the case on some environments (e.g., ExtUnix built with mingw-w64).
    It is a workaround until support for TCP_KEEPIDLE is added for these environments (e.g., using Winsock instead).

  • There is no SIGPIPE on Windows (@dra27 #212).

  • Switch from "capnpc" to "capnp compile" (@talex5 #213).
    capnpc seems to be the old name, and isn't present on Windows.

Build changes:

v0.8.0

17 Jul 15:51
1812e36
Compare
Choose a tag to compare

CHANGES:

Bug fixes and diagnostics:

  • Don't GC imports with callbacks (@talex5, #210).

  • Improve "Already resolved!" error message (@talex5, #209).
    Show the state of the promise we were trying to set, and what we tried to set it to.

  • Reject attempts to send after disconnecting (@talex5, #208).

  • Unix: don't leak FDs if Network.connect fails (@talex5, #206).
    Also, use Lwt to open connections so we don't block the whole process.

New functions:

  • Add Sturdy_ref.with_cap and with_cap_exn convenience functions (@talex5, #207).
    Using the plain connect functions, it's easy to forget to release the live-ref at the end.

Build changes:

  • capnp-rpc-mirage: adapt test to tcpip 5.0.0 API (@hannesm, #205).

  • Upgrade to dune 2 (@talex5, #204).

  • Switch tests to build in native code and use the test stanza (@avsm, #203).

Documentation:

  • Show how to make a connection directly (@talex5, #202).
    The new test-bin/calc_direct.ml example shows how a parent process can
    spawn a child and communicate with it directly over a socketpair.

v0.7.0

14 May 10:03
2691c34
Compare
Choose a tag to compare

CHANGES:

  • Update for x509 0.11.0 API changes (@talex5, #196).

  • Update to new mirage network API (@Cjen1, #198).

  • Add echo benchmark test (@Cjen1, #197).

  • Estimate message sizes to improve performance (@talex5, #200).
    By default, capnproto allocates 8k buffers, but most capnp-rpc messages are
    much smaller than this.

Logging:

  • Fix application logging, to use library's log (@Cjen1, #195).

  • Expose the endpoint logger (@Cjen1, #195).

  • Only enable debug logging for capnp libraries in the calc example.
    TLS now generates a lot of messages at debug level (@talex5, #200).

v0.6.0

27 Mar 11:20
4689b19
Compare
Choose a tag to compare

CHANGES:

  • Port to latest interfaces for x509 (0.10+), mirage-crypto,
    alcotest (1.0+), and mirage-types post the -lwt package
    merge (@avsm #190, review by @talex5 @hannesm)

  • Convert many info-level log messages to debug level (@talex5 #193)