[package] name = "fcnet" version = "0.7.1" edition = "2021" description = "An in-process Firecracker microVM networking backend based on fcnet-types." license = "MIT" keywords = ["firecracker", "microvm", "networking"] categories = ["network-programming"] repository = "https://github.com/rust-firecracker/fcnet" readme = "README.md" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] fcnet-types = { path = "../fcnet-types", version = "0.1.1" } futures-util = { version = "0.3.31", default-features = false } futures-channel = { version = "0.3.31", default-features = false, optional = true } rtnetlink = { version = "0.14.1", default-features = false } netlink-sys = { version = "0.8.6", default-features = false } netlink-proto = { version = "0.11.3", default-features = false } netlink-packet-route = "0.19" tokio-tun = "0.12.0" cidr = "0.3.0" nftables = "0.5.0" nftables-async = "0.2.2" serde_json = "1.0.132" tokio = { version = "1.41.1", default-features = false, features = [ "rt", ], optional = true } async-executor = { version = "1.13.1", optional = true } async-io = { version = "2.4.0", optional = true } nix = { version = "0.29.0", optional = true, features = [ "mount", "sched", "process", ], default-features = false } [dev-dependencies] fcnet = { path = ".", features = ["full"] } [features] default = ["simple"] full = ["simple", "namespaced", "tokio-backend", "smol-backend"] simple = ["fcnet-types/simple"] namespaced = ["fcnet-types/namespaced", "dep:nix", "dep:futures-channel"] tokio-backend = [ "dep:tokio", "netlink-proto/tokio_socket", "nftables-async/tokio-process", ] smol-backend = [ "dep:async-executor", "dep:async-io", "netlink-proto/smol_socket", "nftables-async/async-process", ]