1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// SPDX-License-Identifier: Apache-2.0
//! The MicroVMs client's production port implementations (ARCH-7).
//!
//! `microvms-app` declares the ports its use cases reach the outside through; this crate
//! implements them over the real thing:
//!
//! * [`control::SignedTransport`] and [`control::SignedBuildServices`]: the default credential
//! chain, SigV4, and reqwest, for the control plane and for STS and S3;
//! * [`session::http::ReqwestBackend`]: the daemon's HTTP API, one pooled client;
//! * [`session::forward`], [`session::tunnel`] and [`session::shell`]: the sockets, from the
//! port forwarder's listener to the WebSocket tunnel and its Noise identity proof;
//! * [`names::FileNameStore`]: the CLI's name registry on disk;
//! * [`run_store::FileRunStore`]: run ledgers and append-only VM history on disk;
//! * [`agents::bedrock::mint`]: a Bedrock bearer token from the caller's credentials;
//! * [`provision`]: the verified `agentd` binary, fetched and cached;
//! * [`clock::TokioClock`], [`entropy::OsEntropy`], and [`adapters::SystemAdapters`], which
//! hands out the pieces a use case builds partway through.
//!
//! It's the one library crate in the workspace that may depend on a crate doing network, AWS,
//! filesystem, subprocess, clock or entropy I/O. `microvms-core` wires these into the use cases
//! and re-exports every item here at its `microvms_core::` path, so a consumer never depends
//! on this crate directly.
// CLI-7: a print macro panics when its stream's reader has gone (#216). Every write goes
// through a checked writer instead.
/// The version of the daemon release `provision` fetches by default.
///
/// This crate's own, which is also `microvms_core::VERSION`: `tools/check-publishable.py`
/// holds every published crate in the workspace at one version, so the client and the daemon it
/// provisions come from the same release (BIND-17).
pub const VERSION: &str = env!;