What you will learn in Server-Side WebAssembly
Building portable and secure multi-language apps
Chapter by chapter
Concepts explained in this book
- WASIWASI 1.0 is a planned stable version of the WebAssembly System Interface intended to begin long-term stability guarantees.
- Wasm componentA Wasm component is a composable WebAssembly artifact that packages interfaces and implementations so code from different languages can be linked together.
- wasmCloudA wasmCloud application is a distributed application composed of WebAssembly components and deployed through the wasmCloud platform.
- WebAssemblyWebAssembly (Wasm) is a portable binary instruction format and execution environment for running compiled code across hardware and operating systems.
- wasi:nnwasi:nn is a WebAssembly interface for loading machine-learning graphs and executing inference through a host-provided neural-network implementation.
- WITA WIT definition is a WIT description of the types and interfaces required to specify interactions between WebAssembly components.
- ONNXONNX is an open model representation and interoperability standard for exchanging machine-learning models between frameworks and runtimes.
- softmaxSoftmax is a mathematical transformation that converts a vector of scores into nonnegative probabilities summing to one.
- WebAssembly moduleA Wasm module is a compiled WebAssembly unit containing code and associated definitions that a runtime can instantiate and execute.
- custom resource definitionA custom resource definition is a Kubernetes API declaration that extends the Kubernetes API with a new custom resource type.
- Wasm containerA Wasm container is a containerized deployment artifact whose application executes as a WebAssembly module rather than as a native process with a packaged operating-system user space.
- WebAssembly runtimeA Wasm or WebAssembly runtime is software that loads and executes WebAssembly modules while mediating access to host resources and system interactions.
- capability providerA capability provider is a wasmCloud component or service that supplies a capability to application components, typically by implementing an external capability interface and mediating access to a backing system.
- serverless computingServerless computing is a cloud model in which the provider manages infrastructure and server operations while applications run in response to events or requests.
- user-defined functionA user-defined function is a database function implemented by an application or extension rather than built into the database engine.
- Kubernetes operatorA Spin operator is a Kubernetes controller that manages the deployment and execution of Spin applications.
- probability distributionA probability distribution assigns nonnegative likelihood values to possible outcomes with a total probability of one.
- spreadscaler traitThe spreadscaler is a wasmCloud component that distributes application instances across available hosts and manages their placement.
- wit-bindgenwit-bindgen is a code-generation library and tool for producing language bindings and interoperability glue from WIT interfaces.
- NATSNATS is a lightweight, high-performance messaging system and broker for communication among distributed software components.
- tokenizerA tokenizer is a text-processing component that converts text into discrete tokens and can reconstruct text from token sequences.
- wadm manifestA wadm manifest is a declarative application configuration that specifies component capabilities, links, and deployment settings for a WebAssembly application.
- multithreadingMultithreading is the concurrent execution of multiple threads within a process or application.
- wasi:keyvaluewasi:keyvalue is a standardized WebAssembly interface for accessing key-value storage from WebAssembly components.
- linear memoryLinear memory is a contiguous, growable byte array that provides the addressable memory space of a WebAssembly program.
- Spin applicationA Spin application is a WebAssembly application packaged and executed with the Spin framework and runtime.
- container imageA container image is an immutable package containing an application, its dependencies, and the filesystem metadata needed to create a container.
- shared-nothing architectureShared-nothing is an architecture in which interacting execution units do not share memory or other mutable state and communicate through explicit interfaces.
- podA Kubernetes pod is the smallest deployable Kubernetes unit that groups one or more containers sharing network and storage context.
- worldA world is a WIT construct that groups the imports and exports forming a component's external interface.
- cold startCold start time is the startup latency required to initialize an application or service without a prewarmed execution instance.
- k3dk3d is a lightweight command-line tool for running local Kubernetes clusters in Docker containers.
- OllamaOllama is a local machine-learning runtime and command-line tool for downloading and running large language models.
- libSQLlibSQL is an open-source, SQLite-compatible database engine that supports embedding and extending database functionality.
- washwash is the wasmCloud command-line interface for creating projects, managing keys, interacting with OCI registries, and operating wasmCloud applications.
- wasmcloud.tomlwasmcloud.toml is a wasmCloud manifest file that declares component metadata, interfaces, and compilation settings.
- optionOption is Rust's enum type for representing either a present value or the absence of a value.
- containerd-shimcontainerd-shim is a helper process that connects containerd to a running container and manages container lifecycle and I/O after the parent runtime exits.
- HorizontalPodAutoscalerThe Horizontal Pod Autoscaler is a Kubernetes controller that adjusts a workload's replica count according to observed resource utilization or other metrics.
- wasm32-wasiwasm32-wasip1 is a 32-bit WebAssembly compilation target using WASI Preview 1 bindings.
- confidential computingConfidential computing is a computing approach that protects data and code while they are being processed, typically with hardware-backed trusted execution environments.
- SpinKubeThe Spin kube plugin is a Spin command-line plugin for deploying Spin applications to Kubernetes, including generating Kubernetes deployment manifests.
- end of text tokenAn end-of-sequence token is a special model token indicating that generated text should terminate.
- logitA logit is an unnormalized score produced for a candidate class or token before conversion into probabilities.
- WeightedIndexWeightedIndex is a Rust random-sampling distribution that selects an index with probability proportional to its supplied weight.
- hello-world-rust templateThe hello-world-rust template is a project scaffold for creating a Rust WebAssembly component configured for wasmCloud.
- latticeA wasmCloud lattice is a distributed network in which multiple wasmCloud hosts communicate and coordinate application components.
- remote procedure callA remote procedure call is a communication mechanism that lets a program invoke a function or procedure on another system.
- runtime linkingRuntime linking is the dynamic establishment and management of connections between separately running software components during execution.
- wadmwadm is the wasmCloud application deployment manager for declaring, deploying, linking, and monitoring application components.
- load balancingLoad balancing is the distribution of application requests or work across multiple running instances or hosts.
- capabilityA capability is an explicit, constrained authority that permits code to access a particular resource or operation.
- SpinSpin is an open-source framework and runtime for building and running WebAssembly applications, especially event-driven services.
- KubernetesKubernetes is an open-source system for deploying, scheduling, scaling, and managing containerized workloads across clusters.
- container2wasmcontainer2wasm is a tool that converts Linux container workloads into WebAssembly binaries by compiling CPU emulators into WebAssembly.
- adapter componentAn adapter component is a WebAssembly component that supplies implementations for another component's imported interfaces and mediates their interaction with the host.
- trusted computing baseA trusted computing base is the set of hardware, software, and firmware components that must be trusted to enforce a system's security properties.
- trusted execution environmentA trusted execution environment is an isolated hardware-backed execution area that protects code and data from access by software outside the environment.
- Wasm Component ModelThe WebAssembly component model is a specification for composing WebAssembly components through typed interfaces, imports, exports, and resource interactions.
- cold start problemThe cold start problem is the startup latency incurred when an inactive or deprovisioned application instance must be initialized before serving a request.
- wasmtime-wasi-nnwasmtime-wasi-nn is Wasmtime's host-side implementation of the wasi:nn interface for running supported machine-learning models.
- WebAssembly Text FormatWAT is the human-readable textual representation of WebAssembly modules and their instructions.
- SmartCMSSmartCMS is a content management system for creating, curating, storing, and presenting children's stories.
- Canonical ABIThe Canonical ABI is a standard calling convention for translating and packaging values between WebAssembly and interface environments.
- containerdcontainerd is a container runtime daemon that manages container lifecycles and coordinates container execution with host and external resources.
- cert-managercert-manager is a Kubernetes add-on that automates the issuance and renewal of TLS certificates.
- io.containerd.spin.v2containerd-shim-spin is a Spin-specific containerd shim for running Spin WebAssembly workloads through the container runtime.
- RuntimeClassRuntimeClass is a Kubernetes API resource that selects the container runtime configuration for running pods.
- SpinAppExecutorSpinAppExecutor is a SpinKube custom resource that specifies how SpinApp workloads are executed.
- wasm-toolswasm-tools is a command-line toolkit for inspecting, manipulating, and validating WebAssembly modules and components, including extracting WIT interfaces.
- wacwac is a WebAssembly composition tool that links component imports and exports and can produce a composed component.
- replicaA replica is an independently running copy of a component or service deployed to handle workload alongside other copies.
- WASI contextA WASI context is runtime state that stores the WASI resources and configuration made available to a WebAssembly execution.
- Wasmtime storeA Wasmtime store is a runtime object that holds data and execution state associated with WebAssembly components, modules, and instances.
- DockerDocker is a platform and command-line toolset for building, packaging, and running applications in containers.
- ingress objectAn Ingress is a Kubernetes API resource that defines routing of external HTTP traffic to services based on hostnames or paths.
- data in useData in use is information actively being processed in memory by a computer.
- sandboxingSandboxing is a security technique that confines code to a restricted execution environment and limits its access to host resources.
- secure multiparty collaborationSecure multiparty collaboration is a technique in which multiple parties jointly compute over sensitive assets without exposing those assets to one another.
- jcojco is a JavaScript toolchain for generating bindings and interoperability code for WebAssembly components.
- Wasmtime component bindgen macroThe Wasmtime component bindgen macro generates Rust binding and glue code from WebAssembly component interfaces.
- Wasmtime engineA Wasmtime engine is the runtime state and compiled-code execution context created from a Wasmtime configuration.
- Wasmtime linkerA Wasmtime linker resolves host-provided imports and guest interfaces when instantiating WebAssembly modules or components.
- edge computingEdge computing performs computation near the sources or consumers of data rather than exclusively in centralized cloud infrastructure.
- machine learning componentA machine learning component is a WebAssembly component that produces story text through a machine-learning-oriented interface.
- WasmtimeWasmtime is a WebAssembly runtime for executing WebAssembly modules and providing controlled access to host system resources.
- encryptionEncryption is the process of transforming readable plaintext into ciphertext using a key so that unauthorized parties cannot read it.
- libsql_bindgenlibsql_bindgen is a Rust crate that generates bindings between Rust functions and libSQL user-defined-function interfaces.
- symmetric key encryptionSymmetric encryption is encryption in which the same secret key is used for both encryption and decryption.
- binary componentA binary component is a WebAssembly component packaged as a compiled binary artifact.
- library componentA library component is a WebAssembly component that provides functions or interfaces for use by other components.
- handleA handle is an indirect integer-like value used to refer to a non-copyable resource managed through a resource table.
- userspace environmentA userspace environment is the collection of user-space libraries, utilities, files, and supporting runtime components in an operating system environment.
- Docker ComposeDocker Compose is a tool for defining and managing applications composed of multiple Docker containers.
- wasm-optwasm-opt is a WebAssembly binary optimizer that applies transformations to reduce size and improve execution performance.
- CDNA content delivery network is a geographically distributed network of servers that caches and delivers content close to end users.
- edge locationAn edge node is a geographically distributed computing location that processes requests near the users who generate them.
- tokenizationTokenization is the process of dividing text into discrete tokens suitable for processing by a machine-learning model.
- key-value bucketA key-value bucket is a named storage collection containing values addressed by unique keys.
- interface definition languageAn interface definition language is a language for specifying software interfaces independently of implementation programming languages.
- interface-level typeAn interface-level type is a data type specified at an interface boundary for representing values exchanged between software components.
- resourceA resource is a non-copyable WIT value that is passed and managed through a handle.
- serializationSerialization is the transformation of structured data into a representation suitable for storage or transmission.
- importAn import is a component dependency that supplies a function, resource, or other interface element from an external module, component, or host.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
