znippy-common 0.9.14

Core logic and data structures for Znippy, a parallel chunked compression system.
Documentation
//! Plugin source, split the same way the repo-root `plugins/` directory is
//! split: `native/` for handlers compiled into the host binary, `wasm/` for the
//! host-side loader of `wasm32-unknown-unknown` modules. No handler source sits
//! loose beside this file — `znippy-common/tests/plugin_source_layout.rs`
//! asserts that, and fails naming the stray file.
//!
//! The two directories under `znippy-common/src/plugins/` hold **modules**; the
//! two under the repo root hold **crates**. Same rule, two tiers — which tier a
//! handler is born into is decided by its dependencies (rule **P-5**,
//! `.nornir/plugins-design.md` §f3), not by taste.
//!
//! ## The module paths are published API
//!
//! `znippy_common::plugins::cargo_native::CargoPlugin` and its five siblings are
//! reached from *outside* this workspace — `holger/traits/src/lib.rs` names them
//! in non-test code, and several `holger/server/repository/*` crates depend on
//! `znippy-common` **by version**, so they follow a published path and cannot
//! follow a directory rename. The `pub use` lines below keep those exact paths
//! alive; they are the whole compatibility story, and no handler code is
//! duplicated to provide them.

pub mod native;

#[cfg(feature = "wasm-plugins")]
pub mod wasm;

// ── Published paths. Do not remove: out-of-workspace consumers resolve
//    `znippy_common::plugins::<x>_native::<X>Plugin` through these. ──
pub use native::{
    cargo_native, conda_native, deb_native, gem_native, npm_native, rpm_native, skeletons,
};

#[cfg(feature = "wasm-plugins")]
pub use wasm::wasm_loader;