rules_py for Python, and rules_js and rules_ts for JavaScript & TypeScript. We also maintain rules_lint, which brings linting and formatting to every language under Bazel.
This reference covers those two ecosystems in depth, from first build to advanced patterns, written by the same engineers who wrote the rules.
Languages & ecosystems
Python
Built and maintained by Aspect:
rules_py. Hermetic Python interpreters, pinned
dependencies via uv, and Gazelle-generated BUILD files. Covers testing,
virtualenvs, containers, and cross-builds.JavaScript & TypeScript
Built and maintained by Aspect:
rules_js and rules_ts, with pnpm workspaces.
Includes integrations for esbuild, webpack, Jest, Cypress, Vite, and Next.js.Linting & Formatting
Built and maintained by Aspect:
rules_lint. First-class linting and formatting
for dozens of languages, incremental and cache-aware, with hold-the-line adoption.More open source
Beyond these rulesets, Aspect maintains a broad portfolio of open-source Bazel tooling, including the Aspect CLI,aspect-gazelle, rules_lint, and bazel-lib. See Open Source Projects for the full listing, and Contributing for how we prioritize community work.
