[package]
edition = "2021"
name = "fcnet"
version = "0.13.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "An in-process Firecracker microVM networking backend based on fcnet-types."
readme = "README.md"
keywords = [
"firecracker",
"microvm",
"networking",
]
categories = ["network-programming"]
license = "MIT"
repository = "https://github.com/rust-firecracker/fcnet"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = ["simple"]
full = [
"simple",
"namespaced",
"tokio-backend",
"smol-backend",
]
namespaced = [
"fcnet-types/namespaced",
"dep:nix",
"dep:futures-channel",
]
simple = ["fcnet-types/simple"]
smol-backend = [
"dep:async-executor",
"dep:async-io",
"netlink-proto/smol_socket",
"nftables-async/async-process-driver",
]
tokio-backend = [
"dep:tokio",
"netlink-proto/tokio_socket",
"nftables-async/tokio-driver",
]
[lib]
name = "fcnet"
path = "src/lib.rs"
[dependencies.async-executor]
version = "1.14.0"
optional = true
[dependencies.async-io]
version = "2.6.0"
optional = true
[dependencies.cidr]
version = "0.3.2"
[dependencies.fcnet-types]
version = "0.1.1"
[dependencies.futures-channel]
version = "0.3.32"
optional = true
default-features = false
[dependencies.futures-util]
version = "0.3.32"
default-features = false
[dependencies.netlink-proto]
version = "0.12.0"
default-features = false
[dependencies.nftables]
version = "0.6.3"
[dependencies.nftables-async]
version = "0.4.1"
[dependencies.nix]
version = "0.31.3"
features = [
"mount",
"sched",
"process",
]
optional = true
default-features = false
[dependencies.rtnetlink]
version = "0.21.0"
default-features = false
[dependencies.serde_json]
version = "1.0.149"
[dependencies.tokio]
version = "1.52.3"
features = ["rt"]
optional = true
default-features = false
[dependencies.tokio-tun]
version = "0.15.2"
[dev-dependencies]