The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v1.0.0 - 2025-03-26
containerd_shim_wasm::sandbox::shim::Cli
->containerd_shim_wasm::sandbox::shim::Shim
and it is no longer public, because this was not intended to be used by users of the crate.- Breaking change: All methods in the
Engine
trait (exceptname
andsupported_layers_types
) are now async. (#931) - The
Engine
trait is now being split intoShim
,Sandbox
andCompiler
traits. (#936) - The
container
module is renamed toshim
module. (#936) - The
Instance
trait is moved to thecontainerd_shimkit
crate, which has it's own changelog, version and README. (#930)
- Removed the
shim_main
function. UseShimCli::run
trait method instead. (#944 and #943) - The
with_lease
macro,otel
module andinstance_utils
module are now private. (#929) - The logging macros are removed. Now, the pod ID and container ID are unconditionally added to any logging coming from a sandbox process. (#953
v0.10.0 - 2025-03-05
- Support for parsing SystemdCgroup from the containerd config file (#864)\
- Added more parameters info to the traces (must enable
tracing
feature) (#853) - Added structured logging macros to the crate (#879)
Engine
trait now creates a dedicated Zygote process for each container to avoid the issue of libcontainer trying to change the shim process's global state. (#828)Engine
trait now usessystemd_cgroup
fromInstanceConfig
to create the container's cgroup instead of hardcoding it tofalse
. (#864)containerd-shim-wasm
now uses Rust Edition 2024.- Breaking change: The
InstanceConfig
struct now has public members instead of accessor methods. (#882) - Breaking change: Removed the
Engine
associated type from theInstance
trait (#887) - Breaking change: The methods of the
Instance
trait are now async. (#890) - Internal refactor: The codebase of containerd-shim-wasm is now mostly asynchronous. (#890)
containerd_shim_wasm::container::PathResolve
is now a private module (#837)
- Fixed the issue of not seeing pod metrics #821
v0.9.0 - 2025-01-27
- Reuse and synchronise access to
Container
object instead of reloading form disk (#763) - Remove custom stdio redicrection: The
run_wasi
method doesn't receive theStdio
object anymore, and redirection is done before the method is called (#788) - Require
Engine
generic inInstance
to implementDefault
(#774) - The method
Instance::new
now takes an&InstanceConfig
instead ofOption<&InstanceConfig>
(#774) - Bumped containerd-shim to v0.8.0.
- Removed
containerd_shim_wasm::sandbox::instance_utils::get_instance_root
andcontainerd_shim_wasm::sandbox::instance_utils::instance_exists
functions (#763) - Removed
Engine
generic fromInstanceConfig
(#774)
- Fixed the undefined behavior issue in forked processes (#357) in #775, which decouples the global state of the shim from the state of the container process.
- Fixed the issue related to signal handlings in containers (#755). The core of the issue was that the use of Tokio signal handlings is shared between the shim and the container process, and this shared state leads to broken signal handling. It was fixed by #775.
v0.8.0 — 2024-12-04
- Support for "wasi:http/proxy" world in Wasmtime shim (#691, #705)
- Re-export
containerd_shim::Config
(#714) - CI jobs for spell checking and running documentation tests (#728)
- Update the
opentelemetry
related dependencies to the latest version (#712) - Use
InstanceAllocationStrategy::Pooling
if possible in wasmtime-shim (#751)
- Removed special handling of the pause container, now it is treated as any other native container (#724)
- Documentation tests (#728)
v0.7.0 — 2024-10-7
- OpenTelemetry tracing support (#582, #653)
- Enabled async, networking, and IP name lookup in Wasmtime (#589)
- Re-enabled benchmarking with cargo bench (#612)
- Support for generating new artifact types (#631)
- End-to-end tests for Wasm OCI artifacts (#661)
- Made
tracing::instrument
macro optional (#592) - Upgraded youki Libcontainer to v0.3.3 that reduce startup time by 1s (#601)
- Configured dependabot to group patch updates (#641)
- Improved
PathResolve
logic using RPITIT (#654) - Improved error messages in
Executor::exec
(#655) - Improved the getting started guide and Makefile for Windows (#665)
- Modified behavior so that container environment variables are exclusively passed to WASI modules, enhancing security and isolation. (#668)
- Updated the
containerd-shim
dependency to the latest version.
- Corrected syntax errors in release scripts (#603, #604)
- Resolved CI failures in benchmark tests (#669)
- Fixed a failed test
test_envs_not_present
and renamed it totest_envs_return_default_only
#680 - Fixed the setup environment by adding openssl dependency to the Dockerfile #680
- Deprecated the 'Shared' mode (#671)