log-io 1.0.0

Structured logging pipeline for Rust. Zero-allocation fast path, JSON / logfmt / human-readable outputs, context propagation (request-id, trace-id), per-module filtering, async-safe sinks. An IO pipeline for log records, not a wrapper around log+tracing.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.75"
name = "log-io"
version = "1.0.0"
authors = ["James Gober <me@jamesgober.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Structured logging pipeline for Rust. Zero-allocation fast path, JSON / logfmt / human-readable outputs, context propagation (request-id, trace-id), per-module filtering, async-safe sinks. An IO pipeline for log records, not a wrapper around log+tracing."
homepage = "https://github.com/jamesgober/log-io"
documentation = "https://docs.rs/log-io"
readme = "README.md"
keywords = [
    "logging",
    "structured",
    "json",
    "logfmt",
    "telemetry",
]
categories = [
    "development-tools::debugging",
    "asynchronous",
    "no-std",
]
license = "Apache-2.0"
repository = "https://github.com/jamesgober/log-io"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
default = [
    "std",
    "json",
    "logfmt",
    "human",
]
human = []
json = []
logfmt = []
std = []

[lib]
name = "log_io"
path = "src/lib.rs"

[[example]]
name = "basic"
path = "examples/basic.rs"
required-features = [
    "std",
    "human",
]

[[example]]
name = "context"
path = "examples/context.rs"
required-features = [
    "std",
    "logfmt",
]

[[example]]
name = "custom_format"
path = "examples/custom_format.rs"
required-features = ["std"]

[[example]]
name = "custom_sink"
path = "examples/custom_sink.rs"
required-features = [
    "std",
    "json",
]

[[example]]
name = "default_fields"
path = "examples/default_fields.rs"
required-features = [
    "std",
    "json",
]

[[example]]
name = "file_sink"
path = "examples/file_sink.rs"
required-features = [
    "std",
    "json",
]

[[example]]
name = "filter"
path = "examples/filter.rs"
required-features = [
    "std",
    "human",
]

[[example]]
name = "json"
path = "examples/json.rs"
required-features = [
    "std",
    "json",
]

[[example]]
name = "multi_sink"
path = "examples/multi_sink.rs"
required-features = [
    "std",
    "json",
    "human",
]

[[test]]
name = "end_to_end"
path = "tests/end_to_end.rs"
required-features = [
    "std",
    "json",
    "logfmt",
    "human",
]

[[test]]
name = "property"
path = "tests/property.rs"
required-features = [
    "std",
    "json",
    "logfmt",
    "human",
]

[[test]]
name = "stress"
path = "tests/stress.rs"
required-features = [
    "std",
    "json",
    "logfmt",
    "human",
]

[[bench]]
name = "concurrent"
path = "benches/concurrent.rs"
harness = false
required-features = [
    "std",
    "json",
]

[[bench]]
name = "format"
path = "benches/format.rs"
harness = false
required-features = [
    "std",
    "json",
    "logfmt",
    "human",
]

[[bench]]
name = "pipeline"
path = "benches/pipeline.rs"
harness = false
required-features = [
    "std",
    "json",
    "logfmt",
]

[dependencies]

[dev-dependencies.proptest]
version = "1"
features = ["std"]
default-features = false

[profile.release]
opt-level = 3
lto = "thin"