Skip to content

Commit

Permalink
Update to new mirage-crypto API
Browse files Browse the repository at this point in the history
  • Loading branch information
talex5 committed Feb 2, 2025
1 parent a9b4e9b commit 3c818f3
Show file tree
Hide file tree
Showing 25 changed files with 56 additions and 56 deletions.
2 changes: 1 addition & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ It is recommended to upgrade in stages, checking your application still works af
Calls to functions in the `Capnp_rpc_unix` and `Capnp_rpc_net` modules will need minor updates.
They were previously called from Lwt context, so you'll need to wrap them with `Lwt_eio.run_eio`
(or remove a `Lwt_eio.run_lwt` if you already updated the surrounding code).
You should also use `mirage-crypto-rng-eio` to ensure randomness is available
You should also use `mirage-crypto-rng.unix` to ensure randomness is available
(`capnp-rpc-unix` no longer does this, although some other library might).

4. Upgrade code and libraries using `Capnp_rpc_lwt`:
Expand Down
62 changes: 31 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,34 +15,34 @@ See [LICENSE.md](LICENSE.md) for details.
* [Installing](#installing)
* [Structure of the library](#structure-of-the-library)
* [Tutorial](#tutorial)
* [A basic echo service](#a-basic-echo-service)
* [Passing capabilities](#passing-capabilities)
* [Networking](#networking)
* [The server side](#the-server-side)
* [The client side](#the-client-side)
* [Separate processes](#separate-processes)
* [A basic echo service](#a-basic-echo-service)
* [Passing capabilities](#passing-capabilities)
* [Networking](#networking)
* [The server side](#the-server-side)
* [The client side](#the-client-side)
* [Separate processes](#separate-processes)
* [Pipelining](#pipelining)
* [Guide to sturdy refs](#guide-to-sturdy-refs)
* [Hosting multiple sturdy refs](#hosting-multiple-sturdy-refs)
* [Creating services dynamically](#creating-services-dynamically)
* [The Persistence API](#the-persistence-api)
* [Persisting sturdy refs](#persisting-sturdy-refs)
* [Hosting multiple sturdy refs](#hosting-multiple-sturdy-refs)
* [Creating services dynamically](#creating-services-dynamically)
* [The Persistence API](#the-persistence-api)
* [Persisting sturdy refs](#persisting-sturdy-refs)
* [Further reading](#further-reading)
* [FAQ](#faq)
* [Why does my connection stop working after 10 minutes?](#why-does-my-connection-stop-working-after-10-minutes)
* [How can I return multiple results?](#how-can-i-return-multiple-results)
* [Can I create multiple instances of an interface dynamically?](#can-i-create-multiple-instances-of-an-interface-dynamically)
* [Can I get debug output?](#can-i-get-debug-output)
* [How can I debug reference counting problems?](#how-can-i-debug-reference-counting-problems)
* [How can I import a sturdy ref that I need to start my vat?](#how-can-i-import-a-sturdy-ref-that-i-need-to-start-my-vat)
* [How can I release other resources when my service is released?](#how-can-i-release-other-resources-when-my-service-is-released)
* [Is there an interactive version I can use for debugging?](#is-there-an-interactive-version-i-can-use-for-debugging)
* [Can I set up a direct 2-party connection over a pre-existing channel?](#can-i-set-up-a-direct-2-party-connection-over-a-pre-existing-channel)
* [Why does my connection stop working after 10 minutes?](#why-does-my-connection-stop-working-after-10-minutes)
* [How can I return multiple results?](#how-can-i-return-multiple-results)
* [Can I create multiple instances of an interface dynamically?](#can-i-create-multiple-instances-of-an-interface-dynamically)
* [Can I get debug output?](#can-i-get-debug-output)
* [How can I debug reference counting problems?](#how-can-i-debug-reference-counting-problems)
* [How can I import a sturdy ref that I need to start my vat?](#how-can-i-import-a-sturdy-ref-that-i-need-to-start-my-vat)
* [How can I release other resources when my service is released?](#how-can-i-release-other-resources-when-my-service-is-released)
* [Is there an interactive version I can use for debugging?](#is-there-an-interactive-version-i-can-use-for-debugging)
* [Can I set up a direct 2-party connection over a pre-existing channel?](#can-i-set-up-a-direct-2-party-connection-over-a-pre-existing-channel)
* [Contributing](#contributing)
* [Conceptual model](#conceptual-model)
* [Building](#building)
* [Testing](#testing)
* [Fuzzing](#fuzzing)
* [Conceptual model](#conceptual-model)
* [Building](#building)
* [Testing](#testing)
* [Fuzzing](#fuzzing)

<!-- vim-markdown-toc -->

Expand Down Expand Up @@ -462,7 +462,7 @@ let start_server ~sw ~delay net =
let () =
Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Switch.run @@ fun sw ->
let delay = Eio.Time.Timeout.seconds env#mono_clock delay in
let uri = start_server ~sw ~delay env#net in
Expand All @@ -477,11 +477,11 @@ let () =
</p>
You'll need to edit your `dune` file to add dependencies
on `capnp-rpc-unix` and `mirage-crypto-rng-eio` in the `(libraries ...` line and also:
on `capnp-rpc-unix` and `mirage-crypto-rng in the `(libraries ...` line and also:
<!-- $MDX skip -->
```sh
$ opam install capnp-rpc-unix mirage-crypto-rng-eio
$ opam install capnp-rpc-unix mirage-crypto-rng
```
Running this will give something like:
Expand Down Expand Up @@ -569,7 +569,7 @@ Edit the `dune` file to build a client and server:
```
(executables
(names client server)
(libraries eio_main capnp-rpc logs.fmt capnp-rpc-unix mirage-crypto-rng-eio))
(libraries eio_main capnp-rpc logs.fmt capnp-rpc-unix mirage-crypto-rng.unix))
(rule
(targets echo_api.ml echo_api.mli)
Expand Down Expand Up @@ -615,7 +615,7 @@ let serve_cmd env =
let () =
exit @@ Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Cmd.eval (serve_cmd env)
```
Expand Down Expand Up @@ -661,7 +661,7 @@ let connect_cmd env =
let () =
exit @@ Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Cmd.eval (connect_cmd env)
```
Expand Down Expand Up @@ -866,7 +866,7 @@ let run_client ~net cap_file msg =
let () =
Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Switch.run @@ fun sw ->
let net = env#net in
start_server ~sw net;
Expand Down Expand Up @@ -910,7 +910,7 @@ We can use the new API like this:
```ocaml
let () =
Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Switch.run @@ fun sw ->
let net = env#net in
let root_uri = start_server ~sw net in
Expand Down
4 changes: 2 additions & 2 deletions capnp-rpc-net.opam
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ depends: [
"asn1-combinators" {>= "0.2.0"}
"x509" {>= "1.0.3"}
"dune" {>= "3.16"}
"mirage-crypto" {>= "1.1.0"}
"mirage-crypto-rng" {>= "1.1.0"}
"mirage-crypto" {>= "1.2.0"}
"mirage-crypto-rng" {>= "1.2.0"}
]
build: [
["dune" "build" "-p" name "-j" jobs]
Expand Down
2 changes: 1 addition & 1 deletion capnp-rpc-unix.opam
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ depends: [
"dune" {>= "3.16"}
"ipaddr" {>= "5.3.0" }
"alcotest" {>= "1.6.0" & with-test}
"mirage-crypto-rng-eio" {>= "1.1.0" & with-test}
"mirage-crypto-rng" {>= "1.2.0" & with-test}
"mdx" {>= "2.4.1" & with-test}
"eio_main" {with-test}
"eio" {>= "1.2"}
Expand Down
2 changes: 1 addition & 1 deletion examples/pipelining/dune
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(executable
(name main)
(libraries eio_main capnp-rpc-unix mirage-crypto-rng-eio logs.fmt))
(libraries eio_main capnp-rpc-unix mirage-crypto-rng.unix logs.fmt))

(rule
(targets echo_api.ml echo_api.mli)
Expand Down
2 changes: 1 addition & 1 deletion examples/pipelining/main.ml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ let start_server ~sw ~delay net =

let () =
Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Switch.run @@ fun sw ->
let delay = Eio.Time.Timeout.seconds env#mono_clock delay in
let uri = start_server ~sw ~delay env#net in
Expand Down
2 changes: 1 addition & 1 deletion examples/sturdy-refs-2/dune
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(executable
(name main)
(libraries eio_main capnp-rpc-unix mirage-crypto-rng-eio logs.fmt))
(libraries eio_main capnp-rpc-unix mirage-crypto-rng.unix logs.fmt))

(rule
(targets api.ml api.mli)
Expand Down
2 changes: 1 addition & 1 deletion examples/sturdy-refs-2/main.ml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ let start_server ~sw net =
(* $MDX part-begin=main *)
let () =
Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Switch.run @@ fun sw ->
let net = env#net in
let root_uri = start_server ~sw net in
Expand Down
2 changes: 1 addition & 1 deletion examples/sturdy-refs-3/dune
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(executable
(name main)
(libraries eio_main capnp-rpc-unix mirage-crypto-rng-eio logs.fmt))
(libraries eio_main capnp-rpc-unix mirage-crypto-rng.unix logs.fmt))

(rule
(targets api.ml api.mli)
Expand Down
2 changes: 1 addition & 1 deletion examples/sturdy-refs-3/main.ml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ let run_client ~net cap_file =

let () =
Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Switch.run @@ fun sw ->
let net = env#net in
let root_uri = start_server ~sw net in
Expand Down
2 changes: 1 addition & 1 deletion examples/sturdy-refs-4/dune
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(executable
(name main)
(libraries eio_main capnp-rpc-unix mirage-crypto-rng-eio logs.fmt cmdliner))
(libraries eio_main capnp-rpc-unix mirage-crypto-rng.unix logs.fmt cmdliner))

(rule
(targets api.ml api.mli)
Expand Down
2 changes: 1 addition & 1 deletion examples/sturdy-refs-4/main.ml
Original file line number Diff line number Diff line change
Expand Up @@ -100,5 +100,5 @@ let () =
let doc = "a command-line interface for logger service" in
let info = Cmd.info ~doc "logger-client" in
exit @@ Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Cmd.eval @@ Cmd.group info (cmds env)
2 changes: 1 addition & 1 deletion examples/sturdy-refs/dune
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(executable
(name main)
(libraries eio_main capnp-rpc-unix mirage-crypto-rng-eio logs.fmt))
(libraries eio_main capnp-rpc-unix mirage-crypto-rng.unix logs.fmt))

(rule
(targets api.ml api.mli)
Expand Down
2 changes: 1 addition & 1 deletion examples/sturdy-refs/main.ml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ let run_client ~net cap_file msg =

let () =
Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Switch.run @@ fun sw ->
let net = env#net in
start_server ~sw net;
Expand Down
2 changes: 1 addition & 1 deletion examples/v3/dune
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(executable
(name main)
(libraries eio_main capnp-rpc-unix mirage-crypto-rng-eio logs.fmt))
(libraries eio_main capnp-rpc-unix mirage-crypto-rng.unix logs.fmt))

(rule
(targets echo_api.ml echo_api.mli)
Expand Down
2 changes: 1 addition & 1 deletion examples/v3/main.ml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ let start_server ~sw ~delay net =

let () =
Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Switch.run @@ fun sw ->
let delay = Eio.Time.Timeout.seconds env#mono_clock delay in
let uri = start_server ~sw ~delay env#net in
Expand Down
2 changes: 1 addition & 1 deletion examples/v4/client.ml
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,5 @@ let connect_cmd env =

let () =
exit @@ Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Cmd.eval (connect_cmd env)
2 changes: 1 addition & 1 deletion examples/v4/dune
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(executables
(names client server)
(libraries eio_main capnp-rpc logs.fmt capnp-rpc-unix mirage-crypto-rng-eio))
(libraries eio_main capnp-rpc logs.fmt capnp-rpc-unix mirage-crypto-rng.unix))

(rule
(targets echo_api.ml echo_api.mli)
Expand Down
2 changes: 1 addition & 1 deletion examples/v4/server.ml
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@ let serve_cmd env =

let () =
exit @@ Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Cmd.eval (serve_cmd env)
2 changes: 1 addition & 1 deletion test-bin/calc.ml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ let cmds env = [serve_cmd env; connect_cmd env]

let () =
Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Fmt_tty.setup_std_outputs ();
Logs.set_reporter reporter;
Logs.set_level ~all:true (Some Logs.Info);
Expand Down
2 changes: 1 addition & 1 deletion test-bin/dune
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
(executables
(names calc calc_direct)
(libraries testlib cmdliner astring logs.fmt fmt.tty capnp-rpc-unix eio_main
mirage-crypto-rng-eio))
mirage-crypto-rng.unix))
2 changes: 1 addition & 1 deletion test-bin/echo/dune
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(executable
(name echo_bench)
(libraries eio_main capnp-rpc capnp-rpc-net capnp-rpc-unix mirage-crypto-rng-eio logs.fmt))
(libraries eio_main capnp-rpc capnp-rpc-net capnp-rpc-unix mirage-crypto-rng.unix logs.fmt))

(rule
(targets echo_api.ml echo_api.mli)
Expand Down
2 changes: 1 addition & 1 deletion test-bin/echo/echo_bench.ml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ let start_server ~sw net =

let () =
Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
Switch.run ~name:"main" @@ fun sw ->
let uri = start_server ~sw env#net in
Fmt.pr "Connecting to echo service at: %a@." Uri.pp_hum uri;
Expand Down
2 changes: 1 addition & 1 deletion test/dune
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
(package capnp-rpc-unix)
(name test)
(libraries capnp-rpc capnp-rpc-unix testlib logs.fmt
mirage-crypto-rng-eio testbed eio_main eio.mock))
mirage-crypto-rng.unix testbed eio_main eio.mock))
2 changes: 1 addition & 1 deletion test/test.ml
Original file line number Diff line number Diff line change
Expand Up @@ -806,7 +806,7 @@ let rpc_tests ~net ~dir =

let () =
Eio_main.run @@ fun env ->
Mirage_crypto_rng_eio.run (module Mirage_crypto_rng.Fortuna) env @@ fun () ->
Mirage_crypto_rng_unix.use_default ();
(* Eio_unix.Ctf.with_tracing "/tmp/trace.ctf" @@ fun () -> *)
Alcotest.run ~and_exit:false "capnp-rpc" [
"eio", rpc_tests ~net:env#net ~dir:env#cwd;
Expand Down

0 comments on commit 3c818f3

Please sign in to comment.