docker: Engine API client and server, first slice
New ocaml-docker package: the Docker Engine REST API on the host, in
pure OCaml. The IO-free `docker` library maps request and response
bodies to OCaml values with nox-json; `docker-client` (the `dockr` CLI)
and `docker-server` (the `dockrd` daemon) are thin Eio adapters over a
Unix socket, so the same definitions back the client, the server, and
the tests.
This first slice covers GET /version and GET /_ping (both also under a
/v<api> prefix) -- enough to exercise the whole stack (Unix-socket
transport, routing, headers, JSON codecs, client/server symmetry)
without a container runtime behind it.
The interop tests cover both directions. test/client drives a real
daemon and test/interop/dockerd replays committed real-daemon captures
(the oracle is contacted only at REGEN=1), validating our client against
a real server. test/server points the stock `docker` CLI at our server,
validating our server against a real client.
docker: Engine API client and server, first slice
New ocaml-docker package: the Docker Engine REST API on the host, in
pure OCaml. The IO-free `docker` library maps request and response
bodies to OCaml values with nox-json; `docker-client` (the `dockr` CLI)
and `docker-server` (the `dockrd` daemon) are thin Eio adapters over a
Unix socket, so the same definitions back the client, the server, and
the tests.
This first slice covers GET /version and GET /_ping (both also under a
/v<api> prefix) -- enough to exercise the whole stack (Unix-socket
transport, routing, headers, JSON codecs, client/server symmetry)
without a container runtime behind it.
The interop tests cover both directions. test/client drives a real
daemon and test/interop/dockerd replays committed real-daemon captures
(the oracle is contacted only at REGEN=1), validating our client against
a real server. test/server points the stock `docker` CLI at our server,
validating our server against a real client.
docker: Engine API client and server, first slice
New ocaml-docker package: the Docker Engine REST API on the host, in
pure OCaml. The IO-free `docker` library maps request and response
bodies to OCaml values with nox-json; `docker-client` (the `dockr` CLI)
and `docker-server` (the `dockrd` daemon) are thin Eio adapters over a
Unix socket, so the same definitions back the client, the server, and
the tests.
This first slice covers GET /version and GET /_ping (both also under a
/v<api> prefix) -- enough to exercise the whole stack (Unix-socket
transport, routing, headers, JSON codecs, client/server symmetry)
without a container runtime behind it.
The interop tests cover both directions. test/client drives a real
daemon and test/interop/dockerd replays committed real-daemon captures
(the oracle is contacted only at REGEN=1), validating our client against
a real server. test/server points the stock `docker` CLI at our server,
validating our server against a real client.