# 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`, a build,
# and then `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"
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.1", features = ["io-compat"] }
futures-executor = "0.3.1"
futures-io = "0.3.1"
futures-test = "0.3.1"
futures-util = { version = "0.3.1", 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"] }
numtoa = "0.1.0"
num-derive = "0.2.4"
num-traits= "0.2.5"
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"
structopt = "0.2.14"
tempfile = "3.1"
termion = "1.5.3"
timebomb = "0.1.2"
thiserror = "1.0.9"
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 = ["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.4.7"
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.4", default-features = false, features = ["renaming"] }
rust_icu_sys = { version = "0.0.4", default-features = false, features = ["renaming"] }
rust_icu_ucal = { version = "0.0.4", default-features = false, features = ["renaming"] }
rust_icu_udat = { version = "0.0.4", default-features = false, features = ["renaming"] }
rust_icu_udata = { version = "0.0.4", default-features = false, features = ["renaming"] }
rust_icu_uenum = { version = "0.0.4", default-features = false, features = ["renaming"] }
rust_icu_uloc = { version = "0.0.4", default-features = false, features = ["renaming"] }
rust_icu_ustring = { version = "0.0.4", default-features = false, features = ["renaming"] }
rust_icu_utext = { version = "0.0.4", default-features = false, features = ["renaming"] }
rustls = { version = "0.16", features = ["dangerous_configuration"] }
rusttype = "0.7.3"
serde_repr = "0.1.3"
smallvec = "0.6"
static_assertions = "0.3.1"
textwrap = "0.11.0"
tokio-rustls = "0.10.2" # For its async server TlsAcceptor/TlsStream types. Not actually using tokio.
time = "0.1"
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"
xi-core-lib = { version = "0.2.0", default-features = false } # disable "notify" crate
xi-rpc = "0.2.0"

# 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"
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" }
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" }
xi-core-lib = { path = "../rust-mirrors/xi-editor/rust/core-lib" }
xi-rope = { path = "../rust-mirrors/xi-editor/rust/rope" }
xi-rpc = { path = "../rust-mirrors/xi-editor/rust/rpc" }
xi-trace = { path = "..//rust-mirrors/xi-editor/rust/trace" }
xi-trace-dump = { path = "../rust-mirrors/xi-editor/rust/trace-dump" }
xi-unicode = { path = "../rust-mirrors/xi-editor/rust/unicode" }
