rules_py for Python, rules_js and rules_ts for JavaScript & TypeScript, and rules_lint for linting and formatting in any language under Bazel. This section documents those rulesets, from first build to advanced patterns, and has guides for getting more out of Bazel itself.
Languages and 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 and 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 and formatting
Built and maintained by Aspect:
rules_lint. Linting and formatting under Bazel
for dozens of languages, incremental and cache-aware, with hold-the-line adoption.Guides
Optimizing your build
Download less with Build without the Bytes, and find the non-determinism that lowers
your cache hit rate.
Tuning test resource usage
Keep resource-hungry tests from running out of memory by limiting how many run at once.
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.
Community
Join the Aspect Community Slack, Aspect’s free community support. Ask in#help for general support. Join the discussion and see what others are building with the Aspect CLI and Aspect Extension Language (AXL) in the #cli and #axl channels.
For Bazel and the Bazel rulesets, Bazel Slack is the best place for support and discussion. Ask about Aspect’s rules_js in #javascript and rules_py in #python.
