# Copyright 2026 The Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[workspace]
members = ["rust", "rust/engine", "rust/fuzztest_macro", "rust/cargo_fuzztest"]
resolver = "2"

[workspace.dependencies]
anyhow = "1.0.100"
clap = { version = "4.6.1", features = ["derive", "env"] }
convert_case = "0.4.0"
googletest = "0.14.3"
humantime = "2.4.0"
inventory = "0.3.20"
num-traits = "0.2"
postcard = { version = "1.0.0", features = ["use-std"] }
proc-macro-crate = "3.4.0"
proc-macro2 = "1.0.106"
quote = "1.0.45"
rand = { version = "0.10.1", features = ["std_rng"] }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.150"
spin = "0.10.0"
syn = { version = "2.0.117", features = ["extra-traits", "full", "parsing", "printing", "visit-mut"] }
tempfile = "3.27.0"
