tracers 0.1.0

Generates very low overhead native trace points using stable Rust
Documentation
[package]
name = "tracers"
version = "0.1.0"
authors = ["Adam Nelson <anelson@127.io>"]
edition = "2018"
license = "MIT OR Apache-2.0"
autobenches = false
description = "Generates very low overhead native trace points using stable Rust"
repository = "https://github.com/anelson/tracers"
readme = "../README.md"
keywords = ["tracers", "systemtap", "ltt-ng", "ebpf", "tracing"]
categories = ["os", "development-tools::profiling"]

# This is a hack.  Or maybe a workaround for a bug.
#
# It seems that Cargo does not pass variables to dependent crates using the DEP_(PKGNAME)_(VARNAME)
# env vars unless it thinks the crate is wrapping a native library.  This package is definitely not
# doing that, but setting this in the manifest ensures that the downstream dependencies' build.rs
# can query the variables produced by this `build.rs` to detect which prob impl was used at compile time
#
# This will be unnecessary once https://github.com/rust-lang/cargo/issues/3544 is implemented
links = "tracers"

[badges]
maintenance = { status = "experimental" }
cirrus-ci = { repository = "github/anelson/tracers", branch = "master" }
azure-devops = { project = "anelson-open-source/tracers", pipeline = "anelson.tracers", build="4" }

[features]
# By default, tracing is enabled and set to an automatically selected static implementation
default = ["tracing"]

tracing = ["static-tracing"]

# To enable dynamic tracing requires it be explicitly activated.  Note this is mutually exclusive with
# enable-static-tracing
dynamic-tracing = ["once_cell", "tracers-core/dynamic", "tracers-dyn-stap/enabled", "tracers-dyn-noop"]

# Static tracing is built in to the generators, it doesn't have any additional dependent crates
static-tracing = ["tracers-core/default"]

force-dyn-stap = ["dynamic-tracing", "tracers-dyn-stap/required"]

force-dyn-noop = ["dynamic-tracing", "tracers-dyn-noop"]

force-static-noop = ["static-tracing"]

force-static-stap = ["static-tracing"]

force-static-lttng = ["static-tracing"]

# An optional feature will build binaries which are used to interact with the probing framework.  These are only useful
# as part of our CI tests, or when troubleshooting unexpected behavior with the probes.  If you are using this crate as a dependency,
# you should not activate this feature as it will add `tracers-macros` to the runtime-dependencies of `tracers`
binaries = ["nom", "tracers-macros"]

[[bin]]
name = "testfire"
path = "src/bin/testfire.rs"
required-features = [ "binaries" ]

[[bin]]
name = "profile_target"
path = "src/bin/profile_target.rs"
required-features = [ "binaries" ]

[[bench]]
name = "probe_firing"
harness = false

[dependencies]
once_cell = { version = "1.2.0", optional = true }
tracers-core = { path = "../tracers-core", version = "0.1.0", optional = true }
tracers-dyn-noop = { path = "../tracers-dyn-noop", version = "0.1.0", optional = true }
tracers-dyn-stap = { path = "../tracers-dyn-stap", version = "0.1.0", optional = true }

nom = { version = "5.0.1", optional = true }
tracers-macros = { path = "../tracers-macros", version = "0.1.0", optional = true }

[build-dependencies]
tracers-build = { path = "../tracers-build", version = "0.1.0" }
failure = "0.1.6"

[dev-dependencies]
# Our integration tests and examples assume the tracers-macros are available
tracers-macros = { path = "../tracers-macros", version = "0.1.0" }
criterion = "0.3.0"
failure = "0.1.6"
nix = "0.15.0"