Cargo Features

[dependencies]
fctools = { version = "0.6.0-beta.1", default-features = false, features = ["full", "syscall-nix", "syscall-rustix", "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"] }
default = syscall-nix

The syscall-nix feature is set by default whenever fctools is added without default-features = false somewhere in the dependency tree.

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, syscall-nix, tokio-runtime, unrestricted-vmm-executor, vm
syscall-nix default full?

syscall implementations

Enables nix

syscall implementation

syscall-rustix

Enables rustix

runtime-util jailed-vmm-executor? smol-runtime? tokio-runtime? unrestricted-vmm-executor? vmm-process?

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

Affects process_spawner::SuProcessSpawner, process_spawner::SudoProcessSpawner

vmm-core vmm-executor? = process-spawner

L2: VMM core

Enables futures-util

executor

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? = runtime-util, vmm-executor

Affects executor::jailed

unrestricted-vmm-executor either-vmm-executor? full? = runtime-util, vmm-executor

Affects executor::unrestricted

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

Affects executor::either

vmm-process vm? = runtime-util, vmm-executor

L4: VMM process

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

async-once-cell:

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