[package] name = "containerd-shim-wasm" description = "Library for building containerd shims for wasm" version = "0.8.0" edition.workspace = true license.workspace = true readme = "README.md" homepage.workspace = true repository.workspace = true [lib] doctest = false [dependencies] anyhow = { workspace = true } chrono = { workspace = true } containerd-shim = { workspace = true } containerd-shim-wasm-test-modules = { workspace = true, optional = true } oci-tar-builder = { workspace = true, optional = true } crossbeam = { workspace = true } env_logger = { workspace = true, optional = true } git-version = { version = "0.3.9" } libc = { workspace = true } log = { workspace = true } oci-spec = { workspace = true } protobuf = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } tempfile = { workspace = true, optional = true } thiserror = { workspace = true } wat = { workspace = true } tokio = { workspace = true, features = ["rt-multi-thread"] } futures = { version = "0.3.30" } wasmparser = { version = "0.220.0" } tokio-stream = { version = "0.1" } sha256 = { workspace = true } # tracing # note: it's important to keep the version of tracing in sync with tracing-subscriber tracing = { workspace = true, optional = true } # does not include `tracing-log` feature due to https://github.com/spinkube/containerd-shim-spin/issues/61 tracing-subscriber = { version = "0.3", default-features = false, features = [ "smallvec", # Enables performance optimizations "parking_lot", # Enables performance optimizations "env-filter", ], optional = true } # opentelemetry opentelemetry = { version = "0.26", default-features = false, optional = true } opentelemetry-otlp = { version = "0.26", default-features = false, features = [ "grpc-tonic", "http-proto", "reqwest-client", ], optional = true } opentelemetry_sdk = { version = "0.26", default-features = false, features = [ "rt-tokio", ], optional = true } tracing-opentelemetry = { version = "0.27", default-features = false, optional = true } [target.'cfg(unix)'.dependencies] caps = "0.5" # this must match the version pulled by libcontainer dbus = { version = "0", features = ["vendored"] } libcontainer = { workspace = true, features = [ "libseccomp", "systemd", "v1", "v2", ] } nix = { workspace = true, features = ["sched", "mount"] } containerd-client = "0.6.0" [target.'cfg(windows)'.dependencies] windows-sys = { workspace = true, features = [ "Win32_Foundation", "Win32_Storage_FileSystem", ] } [dev-dependencies] containerd-shim-wasm-test-modules = { workspace = true } env_logger = { workspace = true } tempfile = { workspace = true } oci-tar-builder = { workspace = true } rand = "0.8" temp-env = "0.3" [features] testing = [ "dep:containerd-shim-wasm-test-modules", "dep:env_logger", "dep:tempfile", "dep:oci-tar-builder", ] opentelemetry = [ "tracing", "dep:opentelemetry", "dep:opentelemetry-otlp", "dep:opentelemetry_sdk", "dep:tracing-opentelemetry", ] tracing = ["dep:tracing", "dep:tracing-subscriber"]