pub struct BuiltinPackageLoader {
client: Arc<dyn HttpClient + Send + Sync>,
in_memory: Option<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: Option<InMemoryCache>§cache: Option<FileSystemCache>§tokens: HashMap<String, String>A mapping from hostnames to tokens
hash_validation: HashIntegrityValidationModeImplementations§
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
Sourcepub fn without_in_memory_cache(self) -> Self
pub fn without_in_memory_cache(self) -> Self
Disable promotion of loaded containers into the in-memory cache.
pub fn cache(&self) -> Option<&FileSystemCache>
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.
Sourcepub fn evict_cached(&self, hash: &WebcHash) -> Option<Container>
pub fn evict_cached(&self, hash: &WebcHash) -> Option<Container>
Remove a container from the in-memory cache.
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
Sourcefn decode_response_body(
headers: &HeaderMap,
body: Vec<u8>,
) -> Result<Vec<u8>, Error>
fn decode_response_body( headers: &HeaderMap, body: Vec<u8>, ) -> Result<Vec<u8>, Error>
Decode the response body according to the Content-Encoding header.
- Supports
gzipandzstdencodings - Supports nested encodings (e.g.
gzip, zstd) - Passes through unencoded bodies or “identity” encoding unchanged
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,
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 = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
§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> ⓘ
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> ⓘ
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>
§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2where
T: SharedNiching<N1, N2>,
N1: Niching<T>,
N2: Niching<T>,
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2where
T: SharedNiching<N1, N2>,
N1: Niching<T>,
N2: Niching<T>,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Pointee for T
impl<T> Pointee for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ServiceExt for T
impl<T> ServiceExt for T
§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
§fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
§fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
500 Internal Server responses. Read more