Skip to content

provider.star — Language & Standard Library Reference

vx uses a two-phase execution model: provider.star files run as pure Starlark (no I/O), returning descriptor dicts that the Rust runtime interprets for actual downloads, installs, and execution. Providers are defined declaratively — no Rust code required for new tools.

Companion docs


Quick Start — Minimal Provider

python
load("@vx//stdlib:provider.star",
     "runtime_def", "github_permissions",
     "github_rust_provider")

name        = "mytool"
description = "My awesome tool"
ecosystem   = "devtools"

runtimes    = [runtime_def("mytool")]
permissions = github_permissions()

_p = github_rust_provider("owner", "repo",
    asset = "mytool-{vversion}-{triple}.{ext}")

fetch_versions   = _p["fetch_versions"]
download_url     = _p["download_url"]
install_layout   = _p["install_layout"]
store_root       = _p["store_root"]
get_execute_path = _p["get_execute_path"]
environment      = _p["environment"]

I need to…Go here
Understand the execution model, file structure, top-level variables, provider functions, and the ctx objectCore API →
Look up stdlib functions (env, platform, layout, github, templates…)Standard Library →
Learn install layout types, version fetching strategies, and hooksLayouts & Strategies →
Review Starlark syntax rules, coding conventions, and the new provider checklistLanguage & Conventions →

See Also

Released under the MIT License.