# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.77"
name = "rfuse3"
version = "0.0.9"
authors = ["rk8s-dev team"]
build = false
exclude = ["BUCK"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "FUSE user-space library async version implementation."
readme = "README.md"
keywords = [
    "fuse",
    "filesystem",
    "system",
    "bindings",
]
categories = [
    "api-bindings",
    "filesystem",
]
license = "MIT"
repository = "https://github.com/r2cn-dev/rk8s/tree/main/project/rfuse3"

[package.metadata.docs.rs]
rustdoc-args = [
    "--cfg",
    "docsrs",
]
features = [
    "file-lock",
    "unprivileged",
    "tokio-runtime",
]
targets = [
    "i686-unknown-freebsd",
    "i686-unknown-linux-gnu",
    "x86_64-unknown-freebsd",
    "x86_64-unknown-linux-gnu",
]

[features]
async-io-runtime = [
    "dep:async-fs",
    "dep:async-global-executor",
    "dep:async-lock",
    "dep:async-io",
    "dep:async-process",
    "futures-util/io",
]
buffer-pool = []
default = [
    "tokio-runtime",
    "unprivileged",
]
file-lock = []
tokio-runtime = ["dep:tokio"]
unprivileged = [
    "nix/socket",
    "dep:which",
]

[lib]
name = "rfuse3"
path = "src/lib.rs"

[[example]]
name = "benchmark_filesystem"
path = "examples/benchmark_filesystem.rs"

[[example]]
name = "minimal_filesystem_example"
path = "examples/minimal_filesystem_example.rs"

[dependencies.aligned_box]
version = "0.3.0"

[dependencies.async-fs]
version = "2.1.1"
optional = true

[dependencies.async-global-executor]
version = "2.4.1"
optional = true

[dependencies.async-io]
version = "2.3.1"
optional = true

[dependencies.async-lock]
version = "3.3.0"
optional = true

[dependencies.async-notify]
version = "0.3.0"

[dependencies.async-process]
version = "2.1.0"
optional = true

[dependencies.async-trait]
version = "0.1.89"

[dependencies.bincode]
version = "1.3.3"

[dependencies.bytes]
version = "1.10.1"

[dependencies.dashmap]
version = "6.1.0"

[dependencies.futures-channel]
version = "0.3.31"
features = ["sink"]

[dependencies.futures-util]
version = "0.3.31"
features = ["sink"]

[dependencies.libc]
version = "0.2.175"

[dependencies.nix]
version = "0.29.0"
features = [
    "signal",
    "user",
    "fs",
    "socket",
    "sched",
    "mount",
    "mman",
    "resource",
    "dir",
    "term",
    "hostname",
    "process",
]

[dependencies.serde]
version = "1.0.228"
features = [
    "derive",
    "derive",
]

[dependencies.slab]
version = "0.4.9"

[dependencies.tokio]
version = "1.48.0"
features = [
    "full",
    "full",
]
optional = true

[dependencies.tracing]
version = "0.1.41"
features = ["attributes"]

[dependencies.trait-make]
version = "0.1.0"

[dependencies.which]
version = "4.4.2"
optional = true

[dev-dependencies.clap]
version = "4.5.49"
features = [
    "derive",
    "derive",
]

[dev-dependencies.tracing-subscriber]
version = "0.3.20"
