# `rules_tar` > A Bazel ruleset for hermetically working with tape archives (`tar`) ## Getting Started Add the following to `MODULE.bazel`: ```py bazel_dep(name="rules_tar", version="0.0.0") ``` Use the unpacking and extraction rules: ```py load("@rules_tar//tar/unpack:defs.bzl", "tar_unpack") load("@rules_tar//tar/extract:defs.bzl", "tar_extract") tar_unpack( name = "unpack", src = "some.tar.bz2", ) tar_extract( name = "extract", src = "some.tar.zst", outs = [ "a/specific/member.txt", "another/member.txt", ] ) ``` > Note: use [rules_pkg] to pack archives. > > This ruleset _may_ support hermetic packing without a Python toolchain in the future. # Hermeticity The module is entirely hermetic, using `@ape//:tar` as the default toolchain. ## Release Registry The project publishes the relevant files to GitLab releases for use when a version has not been added to the upstream [BCR][bcr]. This is often the case for pre-release versions. Add the following to `.bazelrc`: ``` # `bzlmod` pre-release registries common --registry https://bcr.bazel.build common --registry=https://gitlab.arm.com/bazel/rules_tar/-/releases/v1.0.0-alpha.1/downloads ``` Then a GitLab release version can be used in `bazel_dep`. [bcr]: https://registry.bazel.build/ [rules_pkg]: https://github.com/bazelbuild/rules_pkg