Two Wasm modules, each backed by a library crate:
ββββββββββββββββββββββ ββββββββββββββββββββββ
β canister/ β β plugin/ β
β deployed to ICP β β loaded by icp-cli β
βββββββββββ¬βββββββββββ βββββββββββ¬βββββββββββ
β wraps β wraps
βββββββββββΌβββββββββββ βββββββββββΌβββββββββββ
β ic-certified- β β assets-sync/ β
β assets/ β β β
ββββββββββββββββββββββ ββββββββββββββββββββββ
The ICP assets canister β a deployable WebAssembly canister that serves certified static assets over HTTP. It wraps ic-certified-assets and exposes the canister interface.
The core business logic library. Handles asset storage, certification (response verification), streaming, and access control. canister depends on this crate; it can also be embedded in other canisters.
A thin icp-cli sync plugin. Delegates all sync logic to assets-sync.
Platform-agnostic library implementing the asset sync logic: directory scanning, MIME detection, content encoding, canister diffing, and the CanisterCall trait that abstracts the transport layer.