pub struct BuiltinPackageLoader {
client: Arc<dyn HttpClient + Send + Sync>,
in_memory: InMemoryCache,
cache: Option<FileSystemCache>,
tokens: HashMap<String, String>,
hash_validation: HashIntegrityValidationMode,
}
Expand description
The builtin PackageLoader
that is used by the wasmer
CLI and
respects $WASMER_DIR
.
Fields§
§client: Arc<dyn HttpClient + Send + Sync>
§in_memory: InMemoryCache
§cache: Option<FileSystemCache>
§tokens: HashMap<String, String>
A mapping from hostnames to tokens
hash_validation: HashIntegrityValidationMode
Implementations§
source§impl BuiltinPackageLoader
impl BuiltinPackageLoader
pub fn new() -> Self
sourcepub fn with_hash_validation_mode(
self,
mode: HashIntegrityValidationMode,
) -> Self
pub fn with_hash_validation_mode( self, mode: HashIntegrityValidationMode, ) -> Self
Set the validation mode to apply after downloading an image.
See HashIntegrityValidationMode
for details.
pub fn with_cache_dir(self, cache_dir: impl Into<PathBuf>) -> Self
pub fn validate_cache( &self, mode: CacheValidationMode, ) -> Result<Vec<ImageHashMismatchError>, Error>
pub fn with_http_client( self, client: impl HttpClient + Send + Sync + 'static, ) -> Self
pub fn with_tokens<I, K, V>(self, tokens: I) -> Self
sourcepub fn with_token(
self,
hostname: impl Into<String>,
token: impl Into<String>,
) -> Self
pub fn with_token( self, hostname: impl Into<String>, token: impl Into<String>, ) -> Self
Add an API token that will be used whenever sending requests to a particular hostname.
Note that this uses Url::authority()
when looking up tokens, so it
will match both plain hostnames (e.g. registry.wasmer.io
) and hosts
with a port number (e.g. localhost:8000
).
sourcepub fn insert_cached(&self, hash: WebcHash, container: &Container)
pub fn insert_cached(&self, hash: WebcHash, container: &Container)
Insert a container into the in-memory hash.
async fn get_cached(&self, hash: &WebcHash) -> Result<Option<Container>, Error>
sourceasync fn validate_hash(
image: &Bytes,
mode: HashIntegrityValidationMode,
info: &DistributionInfo,
) -> Result<(), Error>
async fn validate_hash( image: &Bytes, mode: HashIntegrityValidationMode, info: &DistributionInfo, ) -> Result<(), Error>
Validate image contents with the specified validation mode.
sourcefn validate_hash_sync(
image: &[u8],
mode: HashIntegrityValidationMode,
info: &DistributionInfo,
) -> Result<(), Error>
fn validate_hash_sync( image: &[u8], mode: HashIntegrityValidationMode, info: &DistributionInfo, ) -> Result<(), Error>
Validate image contents with the specified validation mode.
async fn download(&self, dist: &DistributionInfo) -> Result<Bytes, Error>
fn headers(&self, url: &Url) -> HeaderMap
Trait Implementations§
source§impl Debug for BuiltinPackageLoader
impl Debug for BuiltinPackageLoader
source§impl Default for BuiltinPackageLoader
impl Default for BuiltinPackageLoader
source§impl PackageLoader for BuiltinPackageLoader
impl PackageLoader for BuiltinPackageLoader
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
summary: &'life1 PackageSummary,
) -> Pin<Box<dyn Future<Output = Result<Container, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
source§fn load_package_tree<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
root: &'life1 Container,
resolution: &'life2 Resolution,
root_is_local_dir: bool,
) -> Pin<Box<dyn Future<Output = Result<BinaryPackage, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn load_package_tree<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
root: &'life1 Container,
resolution: &'life2 Resolution,
root_is_local_dir: bool,
) -> Pin<Box<dyn Future<Output = Result<BinaryPackage, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Load a resolved package into memory so it can be executed. Read more
Auto Trait Implementations§
impl !Freeze for BuiltinPackageLoader
impl !RefUnwindSafe for BuiltinPackageLoader
impl Send for BuiltinPackageLoader
impl Sync for BuiltinPackageLoader
impl Unpin for BuiltinPackageLoader
impl !UnwindSafe for BuiltinPackageLoader
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Pointee for T
impl<T> Pointee for T
§impl<T> Upcastable for T
impl<T> Upcastable for T
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_box(self: Box<T>) -> Box<dyn Any>
§impl<T> Upcastable for T
impl<T> Upcastable for T
§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref
§fn upcast_any_box(self: Box<T>) -> Box<dyn Any>
fn upcast_any_box(self: Box<T>) -> Box<dyn Any>
upcast boxed dyn