microvmi 0.3.13

A cross-platform, unified, low-level VM introspection API supporting multiple hypervisors
Documentation
[package]
name = "microvmi"
version = "0.3.13"
authors = ["Mathieu Tarral <mathieu.tarral@protonmail.com>"]
edition = "2018"
description = "A cross-platform, unified, low-level VM introspection API supporting multiple hypervisors"
readme = "README.md"
homepage = "https://github.com/Wenzel/libmicrovmi"
repository = "https://github.com/Wenzel/libmicrovmi"
license = "GPL-3.0-only"
keywords = ["introspection", "VMI"]

[lib]
crate-type = ["cdylib", "lib"]

[features]
# Xen driver
xen = [
    "xenctrl",
    "xenstore-rs",
    "xenforeignmemory",
    "xenevtchn",
    "xenvmevent-sys",
    "libc",
]
# KVM driver
kvm = ["kvmi"]
# VirtualBox driver
virtualbox = ["fdp"]
# memflow driver
# feature name is "mflow" to avoid conflict with the dependency
mflow = ["memflow"]


[dependencies]
env_logger = "0.9.0"
log = "0.4.8"
bitflags = "1.2.1"
cty = "0.2.1"
nix = "^0.23.0"
enum-iterator = "0.7.0"
thiserror = "1.0"
libc = { version = "0.2.58", optional = true }
xenctrl = { version = "=0.6.0", optional = true }
xenstore-rs = { version = "=0.3.2", optional = true }
xenforeignmemory = { version = "=0.2.3", optional = true }
xenevtchn = { version = "=0.1.6", optional = true }
xenvmevent-sys = { version = "=0.1.3", optional = true }
kvmi = { version = "0.4.0", optional = true }
fdp = { version = "=0.2.5", optional = true }
winapi = { version = "0.3", features = [
    "tlhelp32",
    "winnt",
    "handleapi",
    "securitybaseapi",
], optional = true }
widestring = { version = "0.4", optional = true }
ntapi = { version = "0.3", optional = true }
vid-sys = { version = "=0.3.0", features = [
    "deprecated-apis",
], optional = true }
memflow = { version = "0.2.1", optional = true }

[dev-dependencies]
utilities = { path = "utilities" }
ctrlc = "3.1"
clap = "2.33"
colored = "2.0"
mockall = "0.10.2"
test-case = "1"
indicatif = "0.16.2"
inventory = "0.2.0"

[build-dependencies]
cbindgen = "0.20.0"

[profile.release]
debug = true

[[test]]
name = "integration"
path = "tests/integration.rs"
harness = false


[package.metadata.deb]
extended-description = "A simple virtual machine introspection library providing a cross-platform interface on multiple hypervisors"
# force an old enough libc6
# otherwise, the current libc of the CI is taken, and it will be too recent
depends = "libc6 (>= 2.19)"
section = "libs"
priority = "optional"
# add generated libmicrovmi.h header
assets = [
    [
        "target/release/libmicrovmi.so",
        "usr/lib/libmicrovmi.so",
        "644",
    ],
    [
        "target/release/capi/libmicrovmi.h",
        "usr/include/libmicrovmi.h",
        "644",
    ],
]

[package.metadata.release]
# releases are managed by cargo release, but publication is done on the CI
# this metadata prevents a misuse when --no-publish flag is missing from cargo
# release command line
publish = false

[workspace]
members = ["python"]