Skip to main content

appcore_update/
lib.rs

1// =============================================================================
2//        #######
3//     ###       ###     F: lib.rs
4//    ##   ## ##   ##    P: AppCore-Runtime
5//         ## ##
6//                       C: 2026/07/22 13:21:42 by dnettoRaw
7//    ##   ## ##   ##    U: 2026/08/02 13:24:05 by dnettoRaw
8//      ###########      S: 1.0.1-rc.8
9// =============================================================================
10
11//! Application artifact update, activation and rollback lifecycle.
12//!
13//! The Runtime treats artifacts as opaque bytes. It verifies generic identity,
14//! compatibility and integrity but never knows application code or business
15//! data.
16
17#![deny(missing_docs)]
18
19mod artifact;
20mod authenticity;
21mod coordinator;
22mod error;
23mod filesystem;
24mod integrity;
25mod provider;
26mod store;
27
28pub use artifact::ArtifactDescriptor;
29#[cfg(feature = "allow-unsigned-local-artifacts")]
30pub use authenticity::UnsignedLocalArtifactVerifier;
31pub use authenticity::{
32    artifact_signing_payload, ArtifactAuthenticityVerifier, ArtifactTrustPolicy,
33    Ed25519ArtifactVerifier, PolicyArtifactVerifier, SigningKeyStatus,
34};
35pub use coordinator::{
36    ActivationHealthCheck, NoUpdateFaults, UpdateCoordinator, UpdateFaultInjector,
37    UpdateFaultPoint, UpdateOutcome, UpdatePreparation, UpdateStaging,
38};
39pub use error::{UpdateError, UpdateResult};
40pub use provider::{
41    FileUpdateProvider, FileUpdateProviderFactory, SharedUpdateProvider, UpdateProvider,
42    UpdateRequest, FILE_UPDATE_PROVIDER_ID,
43};
44pub use store::{
45    ActivationReceipt, ArtifactStore, FileArtifactStore, StagedArtifact,
46    UPDATE_METADATA_FORMAT_VERSION,
47};
48
49pub(crate) use integrity::sha256_hex;
50
51#[cfg(test)]
52mod tests;