Cargo Features

[dependencies]
hid-io-core = { version = "0.1.4", default-features = false, features = ["api", "dev-capture", "displayserver", "hidapi-devices", "vhid"] }
default = api, dev-capture, displayserver, hidapi-devices, vhid

These default features are set whenever hid-io-core is added without default-features = false somewhere in the dependency tree.

api default = capnp, capnp-rpc, capnpc, futures, futures-util, glob, nanoid, rcgen, rustls, tempfile, tokio-rustls, tokio-stream, tokio-util

api handles socket interfaces for HID-IO
e.g. capnproto interface
Disabling will reduce compile times

Affects capnp::initialize, api::supported_ids, api::initialize, hid-io-core::common_capnp, hid-io-core::daemon_capnp, hid-io-core::hidio_capnp, hid-io-core::keyboard_capnp

dev-capture default = evdev-rs, libc, nanoid, udev

dev_capture handles any HID event capturing for standard input devices Disabling will reduce compile times

displayserver default = core-foundation, core-graphics, memmap2, tempfile, wayland-client, wayland-protocols-misc, winapi, winreg, x11, xkbcommon

displayserver interacts with the OS display server (e.g. winapi, quartz, x11, wayland)
Disabling will reduce compile times

hidapi-devices default = hidapi, regex, tokio-stream

hidapi_devices allows for communication directly with hid-io supported devices This should be enabled in most scenarios unless you know what you are doing.
Disabling will reduce compile times

vhid default = libc, nanoid, udev, uhid-virt

vhid (virtual hid) allows for the creation of virtual hid devices.
This is needed to support virtual devices such as virtual joysticks, mice and keyboards Disabling will reduce compile times

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

capnp api

Enables capnp ^0.14

capnp-rpc api

Enables capnp-rpc ^0.14

futures api
futures-util api
glob api
hidapi hidapi-devices
libc dev-capture vhid
nanoid api dev-capture vhid
rcgen api

Enables rcgen ^0.11

regex hidapi-devices
rustls api

Enables rustls ^0.21

tempfile api displayserver
tokio-rustls api

Enables tokio-rustls ^0.23

tokio-stream api hidapi-devices
tokio-util api
capnpc build api

Enables capnpc ^0.14

core-foundation mac displayserver
core-graphics mac displayserver

Enables core-graphics ^0.22

evdev-rs linux dev-capture

Enables evdev-rs ^0.5

memmap2 linux displayserver

Enables memmap2 ^0.5

uhid-virt linux vhid

Enables uhid-virt ^0.0.6

wayland-client linux displayserver

Enables wayland-client ^0.30.0-beta.13

wayland-protocols-misc linux displayserver

Enables wayland-protocols-misc ^0.1.0-beta.13

winapi win displayserver
winreg win displayserver

Enables winreg ^0.10

x11 linux displayserver
xkbcommon linux displayserver

Enables xkbcommon ^0.5.0-beta

udev linux dev-capture vhid

Enables udev ^0.6