Shim protos and client for containerd

Crates.io docs.rs Crates.io CI

TTRPC bindings for containerd's shim events and interfaces.

Design

The containerd-shim-protos crate provides Protobuf message and TTRPC service definitions for the Containerd shim v2 protocol.

Usage

Add containerd-shim-client as a dependency in your Cargo.toml

toml [dependencies] containerd-shim-protos = "0.1"

Basic client code looks as follows:

```rust let client = client::Client::connect(socketpath)?; let taskclient = client::TaskClient::new(client);

let context = client::ttrpc::context::with_timeout(0);

let req = client::api::ConnectRequest { id: pid, ..Default::default() };

let resp = task_client.connect(context, &req)?; ```

Example

The way to build the example: ```bash

build sync connect, client and server

$ cargo build --example shim-proto-connect $ sudo ./shim-proto-connect unix:///containerd-shim/shimsocketpath.sock $ cargo build --example shim-proto-client $ cargo build --example shim-proto-server

build async connect, client and server

$ cargo build --example shim-proto-connect-async --features async $ cargo build --example shim-proto-client-async --features async $ cargo build --example shim-proto-server-async --features async ```