# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.

[package]
name = "opendal-fuzz"
publish = false

authors = { workspace = true }
edition = { workspace = true }
homepage = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
rust-version = { workspace = true }
version = { workspace = true }

[package.metadata]
cargo-fuzz = true

[features]
services-alluxio = ["opendal/services-alluxio"]
services-azblob = ["opendal/services-azblob"]
services-azdls = ["opendal/services-azdls"]
services-azfile = ["opendal/services-azfile"]
services-b2 = ["opendal/services-b2"]
services-cacache = ["opendal/services-cacache"]
services-cos = ["opendal/services-cos"]
services-dashmap = ["opendal/services-dashmap"]
services-dropbox = ["opendal/services-dropbox"]
services-etcd = ["opendal/services-etcd"]
services-foundationdb = ["opendal/services-foundationdb"]
services-fs = ["opendal/services-fs"]
services-ftp = ["opendal/services-ftp"]
services-gcs = ["opendal/services-gcs"]
services-gdrive = ["opendal/services-gdrive"]
services-ghac = ["opendal/services-ghac"]
services-gridfs = ["opendal/services-gridfs"]
services-hdfs = ["opendal/services-hdfs"]
services-hf = ["opendal/services-hf"]
services-http = ["opendal/services-http"]
services-huggingface = ["services-hf"]
services-ipfs = ["opendal/services-ipfs"]
services-ipmfs = ["opendal/services-ipmfs"]
services-memcached = ["opendal/services-memcached"]
services-memory = ["opendal/services-memory"]
services-mini-moka = ["opendal/services-mini-moka"]
services-moka = ["opendal/services-moka"]
services-mongodb = ["opendal/services-mongodb"]
services-mysql = ["opendal/services-mysql"]
services-obs = ["opendal/services-obs"]
services-onedrive = ["opendal/services-onedrive"]
services-oss = ["opendal/services-oss"]
services-persy = ["opendal/services-persy"]
services-postgresql = ["opendal/services-postgresql"]
services-redb = ["opendal/services-redb"]
services-redis = ["opendal/services-redis"]
services-rocksdb = ["opendal/services-rocksdb"]
services-s3 = ["opendal/services-s3"]
services-seafile = ["opendal/services-seafile"]
services-sftp = ["opendal/services-sftp"]
services-sled = ["opendal/services-sled"]
services-sqlite = ["opendal/services-sqlite"]
services-swift = ["opendal/services-swift"]
services-tikv = ["opendal/services-tikv"]
services-upyun = ["opendal/services-upyun"]
services-vercel-artifacts = ["opendal/services-vercel-artifacts"]
services-webdav = ["opendal/services-webdav"]
services-webhdfs = ["opendal/services-webhdfs"]

[dependencies]
arbitrary = { version = "1.4.2", features = ["derive"] }
libfuzzer-sys = "0.4"
log = { workspace = true }
logforth = { workspace = true }
opendal = { path = "..", features = ["tests"] }
uuid = { workspace = true, features = ["v4"] }

[[bin]]
name = "fuzz_reader"
path = "fuzz_reader.rs"
test = false

[[bin]]
name = "fuzz_writer"
path = "fuzz_writer.rs"
test = false
