Cargo Features

fctools has no features set by default.

[dependencies]
fctools = { version = "0.6.0", features = ["full", "nix-syscall-backend", "rustix-syscall-backend", "runtime-util", "tokio-runtime", "smol-runtime", "process-spawner", "direct-process-spawner", "elevation-process-spawners", "vmm-core", "vmm-executor", "jailed-vmm-executor", "unrestricted-vmm-executor", "either-vmm-executor", "vmm-process", "vm", "metrics-extension", "http-vsock-extension", "grpc-vsock-extension", "link-local-extension", "snapshot-editor-extension"] }
full = direct-process-spawner, either-vmm-executor, elevation-process-spawners, grpc-vsock-extension, http-vsock-extension, jailed-vmm-executor, link-local-extension, metrics-extension, smol-runtime, snapshot-editor-extension, tokio-runtime, unrestricted-vmm-executor, vm
nix-syscall-backend

syscall backends

Enables nix ^0.29.0

rustix-syscall-backend

Enables rustix

runtime-util smol-runtime? tokio-runtime?

runtime-related

Affects runtime::util

tokio-runtime full? = runtime-util

Enables tokio-backend of hyper-client-sockets and tokio and tokio-util

tokio-util:

tokio runtime

Affects runtime::tokio

smol-runtime full? = runtime-util

Enables pin-project-lite, async-io-backend of hyper-client-sockets and async-executor, async-fs, async-io, async-process, async-task, and blocking

async-task:

smol runtime

Affects runtime::smol

process-spawner direct-process-spawner? elevation-process-spawners? vmm-core? vmm-executor?

L1: process spawner

Affects fctools::process_spawner

direct-process-spawner full? = process-spawner

Affects process_spawner::DirectProcessSpawner

elevation-process-spawners full? = process-spawner

Enables futures-util

vmm core

Affects process_spawner::SuProcessSpawner, process_spawner::SudoProcessSpawner

vmm-core vmm-executor? = process-spawner

L2: VMM core

Enables futures-channel and futures-util

Affects fctools::vmm

vmm-executor jailed-vmm-executor? snapshot-editor-extension? unrestricted-vmm-executor? vmm-process? = process-spawner, vmm-core

L3: VMM executor

Enables futures-channel

Affects vmm::executor

jailed-vmm-executor either-vmm-executor? full? = vmm-executor

Affects executor::jailed

unrestricted-vmm-executor either-vmm-executor? full? = vmm-executor

Affects executor::unrestricted

either-vmm-executor full? = jailed-vmm-executor, unrestricted-vmm-executor

Affects executor::either

vmm-process vm? = vmm-executor

L4: VMM process

Enables async-once-cell, bytes, http, http-body-util, hyper, hyper-client-sockets, and hyper-util

async-once-cell:

vmm process

Affects util::RuntimeHyperExecutor, vmm::process

vm full? grpc-vsock-extension? http-vsock-extension? = vmm-process

L5: VM

Enables serde and serde_json

Affects fctools::vm

metrics-extension full?

L6: VM extensions (and lower-level extensions)

Enables serde and serde_json

serde:

vm

Affects extension::metrics

http-vsock-extension full? = vm

Enables firecracker of hyper-client-sockets

Affects extension::http_vsock

grpc-vsock-extension full? = vm

Enables tonic and tower-service, firecracker of hyper-client-sockets

Affects extension::grpc_vsock

Enables cidr

extensions

Affects extension::link_local

snapshot-editor-extension full? = vmm-executor

Affects extension::snapshot_editor