#shim #containerd #client #ttrpc #client-connect #container #api-bindings

yanked containerd-shim-client

containerd shim 接口的 TTRPC 绑定

0.1.2 2021年12月30日
0.1.1 2021年12月10日
0.1.0 2021年12月10日

#ttrpc 中排名第7

Apache-2.0

705KB
16K SLoC

containerd 的 shim 协议和客户端

已弃用:请使用 containerd-shim-protos 代替。

Crates.io docs.rs Crates.io CI

containerd 的 shim 事件和接口的 TTRPC 绑定。

设计

containerd-shim-client 包提供了 Protobuf 消息和 ttRPC 服务定义,用于 Containerd shim v2 协议。

这些消息和服务定义是由位于 vendor/ 目录下的 protobuf 源文件通过使用 ttrpc-codegen 自动生成的。因此,请勿编辑这些自动生成的源文件。如果需要升级/修改,请按照以下步骤进行

  • 将上游项目的最新 protobuf 源文件同步到 'vendor/' 目录。
  • 通过以下命令重新生成源文件:cargo build --features=generate_bindings
  • 提交同步的 protobuf 源文件和自动生成的源文件,保持同步。

使用方法

在您的 Cargo.toml 中添加 containerd-shim-client 作为依赖项

[dependencies]
containerd-shim-client = "0.1"

基本的客户端代码如下

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)?;

示例

构建 ttRPC 客户端连接 示例的方法

$ cargo build --example connect
$ sudo ./connect unix:///containerd-shim/shim_socket_path.sock

依赖项

~3.5–5MB
~99K SLoC