rust-extensions/crates/shim-protos
Maksym Pavlenko c3999253a1 Fix CI
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-09-05 10:39:25 -07:00
..
examples Run fmt 2022-09-29 11:55:31 -07:00
src Add Windows statistics protobuf pacakge 2023-08-21 16:18:44 +00:00
tests Run fmt 2022-09-29 11:55:31 -07:00
vendor Add Windows statistics protobuf pacakge 2023-08-21 16:18:44 +00:00
Cargo.toml Fix CI 2023-09-05 10:39:25 -07:00
README.md [shim-protos] Bump version 2023-08-02 12:32:48 -07:00
build.rs Add Windows statistics protobuf pacakge 2023-08-21 16:18:44 +00:00

README.md

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

[dependencies]
containerd-shim-protos = "0.4"

Basic client code looks as follows:

let client = client::Client::connect(socket_path)?;
let task_client = 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:

# build sync connect, client and server
$ cargo build --example shim-proto-connect
$ sudo ./shim-proto-connect unix:///containerd-shim/shim_socket_path.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