Bazel Glossary

TermDefinition
ActionA command that transforms input files to output files. Declared during Analysis, executed during Execution.
AnalysisSecond phase — rule implementation functions run, toolchains are resolved, action graph is built.
AspectRule-like construct that propagates along the dependency graph, adding analysis to existing targets.
BzlmodBazel’s modern dependency management system, using MODULE.bazel.
CASContent Addressable Storage. Remote blob store keyed by content hash.
cdylibC-compatible dynamic library. The crate type used by PyO3 for Python extension modules.
ConfigurationSet of build settings (platform, compilation mode, etc.) under which a target is analyzed.
ConstraintA dimension of platform variation (e.g., OS, CPU) and its values.
crate_universeTool bridging Cargo’s dependency resolution into Bazel, generating BUILD files for Rust crates.
ctxContext object passed to rule implementation functions. Access to attributes, toolchains, actions.
DefaultInfoUniversal provider every target returns. Contains output files and runfiles.
depsetEfficient, immutable, hash-consed set for propagating transitive data through the build graph.
ExecutionThird phase — actions actually run (compilers, linkers, etc.).
HermeticA build depending only on declared inputs, not on the local environment.
LoadingFirst phase — BUILD files parsed, macros expand, target graph produced.
MacroStarlark function that expands into target declarations during Loading.
ProviderStructured data bundle returned by a rule implementation. Information flow between targets.
Repository ruleRule running during fetch phase to create an external repository.
RuleDefinition (schema + implementation function) creating a new type of build target.
RunfilesFiles available at runtime (not just build time). Crucial for .so in PyO3.
SandboxIsolated filesystem where each action runs, containing only declared inputs.
StarlarkPython-like language for BUILD files, .bzl files, macros, and rule implementations.
TargetNode in the build graph — instance of a rule with specific attribute values.
ToolchainResolved tool bundle (e.g., specific rustc binary for a specific platform).
TransitionFunction changing the build configuration when traversing a dependency edge.