# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# -------------- READ BEFORE EDITING ---------------
# This file describes the third-party packages used by Rust code and
# how they should be built.
#
# Every edit to this file should be followed by:
# - fx update-rustc-third-party
# - fx build
# - fx update-rustc-crate-map --output third_party/rust_crates/crate_map.json
#
# Always request non-default features you use. This can sometimes get
# missed if another third-party crate in our build requests the same
# feature you use: your builds will usually work, but `fx rustdoc` will
# fail.
#
# More information is available in
# docs/development/languages/rust/third_party.md.

[package]
name = "fuchsia-third-party"
version = "0.1.0"

[dependencies]
# Keep this sorted alphabetically, please.
anyhow = "1.0.25"
arbitrary = { version = "0.4.0", features = ["derive"] }
argh = "0.1"
base64 = "0.9"
bitfield = "0.13"
bitflags = "1"
byteorder = { version = "1", features = ["i128"] }
chrono = "0.4.2"
clap = "2.33"
crc = "1.8.1"
criterion = { version = "0.2", default-features = false }
csv = "1.0.7"
difference = "2.0.0"
futures = { version = "0.3.4", features = ["io-compat"] }
futures-executor = "0.3.4"
futures-io = "0.3.4"
futures-test = "0.3.4"
futures-util = { version = "0.3.4", features = ["io-compat"] }
heck = "0.3.1"
itertools = "0.8"
json5 = "0.2.4"
lazy_static = "1"
libc = "0.2"
log = { version = "0.4.4", features = ["std"] }
maplit = "1.0"
matches = "0.1.8"
maybe-owned = "0.3.2"
memchr = "2.0"
nom = { version = "5.0.0", default-features = false, features = ["std", "regexp_macros"] }
nom_locate = "2.0.0"
num-derive = "0.2.4"
num-traits= "0.2.5"
numtoa = "0.1.0"
once_cell = { version = "1.2.0", features = ["parking_lot"] }
parking_lot = "0.9"
paste = "0.1"
percent-encoding = "2.1"
pest = "2.1"
pest_derive = "2.1"
png = "0.14" # saved for future use
pretty_assertions = "0.5.1"
proc-macro-hack = "0.5.7"
rand = "0.6"
rand_core = "0.4.0"
rand_os = "0.1.2"
rayon = "1.1"
regex = "1.0.6"
regex-syntax = "0.6.5"
ring = "0.16"
rustc-hash = "1.0.1"
scopeguard = "0.3.3"
serde = "1.0.99"
serde_derive = "1.0.99"
serde_json = "1"
slab = "0.4"
splines = "2.2.0"
static_assertions = "1.1.0"
structopt = "0.2.14"
tempfile = "3.1"
termion = "1.5.3"
test-case = "1.0.0"
thiserror = "1.0.9"
timebomb = "0.1.2"
tracing = { version = "0.1.10", features = ["log"] }
tracing-futures = "0.2.0"
unicase = "2.2.0"
url = "2.1"
uuid = { version = "0.7.2", features = ["serde", "v4"] } # move ?
valico = "2.4.2"
xml-rs = "0.8"
# move once target-side tests of host-side code have been removed
# in wayland/scanner:lib and unicode_block_generator :
num = "0.2"
unic-char-range = "0.9"
unic-ucd-block = "0.9"

[dependencies.tracing-subscriber]
version = "0.1.6"
default-features = false
features = ["chrono", "tracing-log"]

# Target-side only dependencies
[target.'cfg(target_os = "fuchsia")'.dependencies]
async-trait = "0.1.11"
bincode = "1"
bytes = "0.5.4"
crossbeam = "0.5"
ct-logs = "0.6"
data-encoding = "2.1.2"
derivative = "1.0.2"
derp = "0.0.13"
euclid = "0.19"
eui48 = { version = "0.4.6", features = ["serde", "disp_hexstring"] }
freetype = "0.4" # saved for future use
getopts = "0.2"
glob = "0.3.0"
harfbuzz = { version = "0.3.1", default-features = false } # saved for future use
hex = "0.3.2"
http = "0.1"
hyper = { version = "0.12.13", default-features = false }
hyper-rustls = { version = "0.17.1", default-features = false }
id_tree = "1.5"
itoa = "0.4"
lipsum = "0.6.0"
net2 = "0.2"
num-bigint = { version = "0.2", features = ["rand"] }
openat = "0.1.17"
owning_ref = "0.4.0"
pin-project = "0.4.6"
pin-utils = "=0.1.0-alpha.4"
pretty = "0.5.2"
prettytable-rs = "0.8.0"
proc-macro-nested = "0.1.2"
proptest = "0.9.3"
proptest-derive = "0.1.1"
rand_core = "0.4.0"
rand_os = "0.1.2"
rand_xorshift = "0.1.1"
rental = "0.5.4"
rouille = "3.0.0"
rust-crypto = "0.2"
rust_icu_common = { version = "0.0.5", default-features = false, features = ["renaming"] }
rust_icu_sys = { version = "0.0.5", default-features = false, features = ["renaming"] }
rust_icu_ucal = { version = "0.0.5", default-features = false, features = ["renaming"] }
rust_icu_udat = { version = "0.0.5", default-features = false, features = ["renaming"] }
rust_icu_udata = { version = "0.0.5", default-features = false, features = ["renaming"] }
rust_icu_uenum = { version = "0.0.5", default-features = false, features = ["renaming"] }
rust_icu_uloc = { version = "0.0.5", default-features = false, features = ["renaming"] }
rust_icu_ustring = { version = "0.0.5", default-features = false, features = ["renaming"] }
rust_icu_utext = { version = "0.0.5", default-features = false, features = ["renaming"] }
rustls = { version = "0.16", features = ["dangerous_configuration"] }
rusttype = "0.7.3"
serde_repr = "0.1.3"
smallvec = "0.6"
textwrap = "0.11.0"
time = "0.1"
tokio-rustls = "0.10.2" # For its async server TlsAcceptor/TlsStream types. Not actually using tokio.
trust-dns-proto = { version = "0.19.2", default-features = false, features = ["testing"] }
trust-dns-resolver = { version = "0.19.2", default-features = false, features = ["testing"] }
unicode-normalization = "0.1"
unicode-segmentation = "1.0"
unicode-width = "0.1.3"
untrusted = "0.7"
utf8parse = "0.1"
vk-sys = "0.4.0"
void = "1.0.2"
vte = "0.3"
walkdir = "2.2.7"
webpki = "0.21"

# Host-side only dependencies
[target.'cfg(not(target_os = "fuchsia"))'.dependencies]
flate2 = "1.0.7"
handlebars = "2.0.0-beta.2"
indoc = "0.3.3"
pulldown-cmark = "0.6.0"
proc-macro2 = "1.0.1"
quote = "1.0.2"
signal-hook = "0.1.13"
syn = { version = "1.0.5", features = ["full", "visit-mut", "extra-traits"] }
synstructure = "0.12.1"
tar = "0.4.25"
tokio = "0.1.22"

# For crates that we don't want to vendor, create a dummy package in tiny_mirrors/ (see existing
# examples).
[patch.crates-io]
# Keep this sorted alphabetically, please.
backtrace-sys = { path = "tiny_mirrors/backtrace-sys" }
cmake = { path = "tiny_mirrors/cmake"}
fuchsia-cprng = { path = "../../garnet/public/rust/fuchsia-cprng" }
nom_locate = { path = "tiny_mirrors/nom_locate" }
pkg-config = { path = "tiny_mirrors/pkg-config" }
rust-crypto = { path = "../rust-mirrors/rust-crypto" }
servo-freetype-sys = { path = "tiny_mirrors/servo-freetype-sys" }
web-sys = { path = "tiny_mirrors/web-sys" }
winapi = { path = "tiny_mirrors/winapi" }
winapi-util = { path = "tiny_mirrors/winapi-util" }
