# This file isn't used by bazel, and is only used to allow the rust tooling
# to work correctly.

[workspace]
# List all local crates required by repo rules here.
members = [
    "portage/bin/action_wrapper",
    "portage/bin/build_image",
    "portage/bin/build_package",
    "portage/bin/build_sdk",
    "portage/bin/drive_binary_package",
    "portage/bin/extract_interface",
    "portage/bin/extract_package",
    "portage/bin/extract_package_from_manifest/extract",
    "portage/bin/extract_package_from_manifest/package",
    "portage/bin/extract_package_from_manifest/update_manifest",
    "portage/bin/fast_install_packages",
    "portage/bin/generate_reclient_inputs",
    "portage/bin/overlayfs_mount_helper",
    "portage/bin/run_in_container",
    "portage/bin/sdk_from_archive",
    "portage/bin/sdk_install_glibc",
    "portage/bin/sdk_update",
    "portage/bin/xpaktool",
    "portage/common/chrome-trace",
    "portage/common/cliutil",
    "portage/common/container",
    "portage/common/durabletree",
    "portage/common/durabletree_test",
    "portage/common/extract_tarball",
    "portage/common/fileutil",
    "portage/common/portage/binarypackage",
    "portage/common/portage/vdb",
    "portage/common/portage/version",
    "portage/common/processes",
    "portage/common/run_in_container_lib",
    "portage/common/testutil",
    "portage/common/tracing-chrome-trace",
    "rust/alchemy_crates",
    "rust/examples",
    "rust/ide_support",
]

[workspace.dependencies]
# List third-party deps here.
anyhow = { version = "1.0.66", features = ["backtrace"] }
base64 = "0.20.0"
by_address = "1.1.0"
bytes = "0.4.12"
bzip2 = "0.4.4"
# chrono: cargo-bazel doesn't support `default_features = false`
chrono = { version = "0.4.34", features = ["clock"] }
clap = { version = "4.0.29", features = ["derive"] }
colored = "2.0.0"
env_logger = "0.9.3"
flate2 = "1.0"
hex = "0.4.3"
itertools = "0.10.5"
lazy_static = "1.4.0"
libc = "0.2.139"
log = "0.4.17"
md-5 = "0.10.5"
nix = { version = "0.26.1", features = ["fs", "ioctl"] }
nom = "7.1.1"
nom-regex = "0.2.0"
nom_locate = "4.0.0"
once_cell = "1.16.0"
path-absolutize = "3.0.14"
pathdiff = "0.2.1"
pretty_assertions = "1.1.0"
proptest = "1.0.0"
rand = "0.8.5"
rayon = "1.6.0"
regex = "1.7.0"
rpds = "0.12.0"
runfiles = "0.1.0"
scopeguard = "1.1.0"
serde = { version = "1.0.149", features = ["derive"] }
serde_json = "1.0.89"
sha2 = "0.10.6"
shell-escape = "0.1.5"
signal-hook = "0.3.14"
strum = "0.24.1"
strum_macros = "0.24.3"
tar = "0.4.38"
tempfile = "3.3.0"
tera = { version = "1.19.1", default-features = false }
thiserror = "1.0.37"
tinytemplate = "1.2.1"
toml = "0.8.8"
tracing = "0.1.37"
tracing-chrome = "0.7.1"
tracing-subscriber = { version = "0.3.17", features = ["env-filter", "json"] }
url = "2.3.1"
users = "0.11.0"
walkdir = "2.3.2"
xattr = "1.0.0"
zstd = "0.12.1"
