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;
27mod store_io;
28
29pub use artifact::ArtifactDescriptor;
30#[cfg(feature = "allow-unsigned-local-artifacts")]
31pub use authenticity::UnsignedLocalArtifactVerifier;
32pub use authenticity::{
33    artifact_signing_payload, ArtifactAuthenticityVerifier, ArtifactTrustPolicy,
34    Ed25519ArtifactVerifier, PolicyArtifactVerifier, SigningKeyStatus,
35};
36pub use coordinator::{
37    ActivationHealthCheck, NoUpdateFaults, UpdateCoordinator, UpdateFaultInjector,
38    UpdateFaultPoint, UpdateOutcome, UpdatePreparation, UpdateStaging,
39};
40pub use error::{UpdateError, UpdateResult};
41pub use provider::{
42    FileUpdateProvider, FileUpdateProviderFactory, SharedUpdateProvider, UpdateProvider,
43    UpdateRequest, FILE_UPDATE_PROVIDER_ID,
44};
45pub use store::{
46    ActivationReceipt, ArtifactStore, FileArtifactStore, StagedArtifact,
47    UPDATE_METADATA_FORMAT_VERSION,
48};
49
50pub(crate) use integrity::sha256_hex;
51
52#[cfg(test)]
53mod tests;