[package] name = "vrl" version = "0.19.0" authors = ["Vector Contributors "] edition = "2021" license = "MPL-2.0" description = "Vector Remap Language" homepage = "https://vrl.dev/" repository = "https://github.com/vectordotdev/vrl" readme = "README.md" keywords = ["vector", "datadog", "compiler"] categories = ["compilers"] rust-version = "1.79" # msrv [workspace] members = [ ".", "lib/cli", "lib/tests", "lib/fuzz" ] [features] default = ["compiler", "value", "diagnostic", "path", "parser", "stdlib", "datadog", "core"] # Main features (on by default) compiler = ["diagnostic", "path", "parser", "value", "dep:paste", "dep:chrono", "dep:serde", "dep:regex", "dep:bytes", "dep:ordered-float", "dep:chrono-tz", "dep:snafu", "dep:thiserror", "dep:dyn-clone", "dep:indoc", "dep:thiserror", "dep:lalrpop-util"] value = ["path", "dep:bytes", "dep:regex", "dep:ordered-float", "dep:chrono", "dep:serde_json"] diagnostic = ["dep:codespan-reporting", "dep:termcolor"] path = ["value", "dep:once_cell", "dep:serde", "dep:snafu", "dep:regex"] parser = ["path", "diagnostic", "value", "dep:thiserror", "dep:ordered-float", "dep:lalrpop-util"] parsing = ["value", "compiler", "dep:url", "dep:nom", "dep:regex", "dep:roxmltree", "dep:rust_decimal"] core = ["value", "dep:snafu", "dep:nom"] string_path = [] # Datadog related features (on by default) datadog = ["datadog_filter", "datadog_grok", "datadog_search"] datadog_filter = ["path", "datadog_search", "dep:regex", "dep:dyn-clone"] datadog_grok = ["value", "parsing", "dep:nom", "dep:peeking_take_while", "dep:serde_json", "dep:onig", "dep:lalrpop-util", "dep:thiserror", "dep:chrono", "dep:chrono-tz", "dep:percent-encoding", "dep:fancy-regex"] datadog_search = ["dep:pest", "dep:pest_derive", "dep:itertools", "dep:once_cell", "dep:regex", "dep:serde"] # Features that aren't used as often (default off) cli = ["stdlib", "dep:serde_json", "dep:thiserror", "dep:clap", "dep:exitcode", "dep:webbrowser", "dep:rustyline", "dep:prettytable-rs"] test_framework = ["compiler", "dep:prettydiff", "dep:serde_json", "dep:ansi_term"] arbitrary = ["dep:quickcheck", "dep:arbitrary"] lua = ["dep:mlua"] proptest = ["dep:proptest", "dep:proptest-derive"] float_roundtrip = ["dep:serde_json", "serde_json/float_roundtrip"] # Internal testing utilities (used for benches) test = ["string_path"] # All stdlib functions stdlib = [ "compiler", "core", "datadog", "parsing", "dep:aes", "dep:base16", "dep:base62", "dep:base64", "dep:cbc", "dep:cfb-mode", "dep:chacha20poly1305", "dep:charset", "dep:convert_case", "dep:cidr-utils", "dep:community-id", "dep:crypto_secretbox", "dep:csv", "dep:ctr", "dep:data-encoding", "dep:digest", "dep:domain", "dep:dns-lookup", "dep:flate2", "dep:grok", "dep:hex", "dep:hmac", "dep:hostname", "dep:iana-time-zone", "dep:idna", "dep:indexmap", "dep:influxdb-line-protocol", "dep:md-5", "dep:nom", "dep:ofb", "dep:once_cell", "dep:percent-encoding", "dep:prost", "dep:prost-reflect", "dep:psl", "dep:psl-types", "dep:publicsuffix", "dep:quoted_printable", "dep:rand", "dep:roxmltree", "dep:rust_decimal", "dep:seahash", "dep:sha-1", "dep:sha-2", "dep:sha-3", "dep:snap", "dep:strip-ansi-escapes", "dep:syslog_loose", "dep:tokio", "dep:uaparser", "dep:url", "dep:utf8-width", "dep:uuid", "dep:woothee", "dep:zstd", ] [dependencies] cfg-if = "1" # Optional dependencies ansi_term = {version = "0.12", optional = true } arbitrary = { version = "1", optional = true, features = ["derive"] } base16 = { version = "0.2", optional = true } base62 = { version = "2.0.2", optional = true } base64 = { version = "0.22", optional = true } bytes = { version = "1", default-features = false, optional = true } charset = { version = "0.1", optional = true } chrono = { version = "0.4", default-features = false, features = ["clock", "serde", "wasmbind"], optional = true } chrono-tz = { version = "0.10", default-features = false, optional = true } cidr-utils = { version = "0.6", optional = true } csv = { version = "1", optional = true } clap = { version = "4", features = ["derive"], optional = true } codespan-reporting = {version = "0.11", optional = true } convert_case = { version = "0.6.0", optional = true } data-encoding = { version = "2", optional = true } digest = { version = "0.10", optional = true } dyn-clone = { version = "1", default-features = false, optional = true } exitcode = {version = "1", optional = true } flate2 = { version = "1", default-features = false, features = ["default"], optional = true } hex = { version = "0.4", optional = true } hmac = { version = "0.12", optional = true } iana-time-zone = { version = "0.1", optional = true } idna = { version = "0.5", optional = true } indexmap = { version = "2", default-features = false, features = ["std"], optional = true} influxdb-line-protocol = { version = "2.0.0", optional = true } indoc = {version = "2", optional = true } itertools = { version = "0.13", default-features = false, features=["use_std"], optional = true } lalrpop-util = { version = "0.21", optional = true } mlua = { version = "0.9", default-features = false, features = ["lua54", "send", "vendored"], optional = true} nom = { version = "7", default-features = false, features = ["std"], optional = true } once_cell = { version = "1", default-features = false, features = ["std"], optional = true } ordered-float = { version = "4", default-features = false, optional = true } md-5 = { version = "0.10", optional = true } paste = { version = "1", default-features = false, optional = true } peeking_take_while = { version = "1", default-features = false, optional = true } percent-encoding = { version = "2", optional = true } pest = { version = "2", default-features = false, optional = true, features = ["std"] } pest_derive = { version = "2", default-features = false, optional = true, features = ["std"] } proptest = { version = "1", optional = true } proptest-derive = { version = "0.4", optional = true } prettydiff = {version = "0.7", default-features = false, optional = true } prettytable-rs = { version = "0.10", default-features = false, optional = true } quickcheck = { version = "1", optional = true } quoted_printable = {version = "0.5", optional = true } psl = { version = "2", optional = true } psl-types = { version = "2", optional = true } publicsuffix = { version = "2", optional = true } rand = { version = "0.8", optional = true } regex = { version = "1", default-features = false, optional = true, features = ["std", "perf", "unicode"] } roxmltree = { version = "0.20", optional = true } rustyline = { version = "14", default-features = false, optional = true } rust_decimal = { version = "1", optional = true } seahash = { version = "4", optional = true } serde = { version = "1", features = ["derive"], optional = true } serde_json = { version = "1", default-features = false, optional = true, features = ["std", "raw_value"] } fancy-regex = { version = "0.13.0", default-features = false, optional = true } sha-1 = { version = "0.10", optional = true } sha-2 = { package = "sha2", version = "0.10", optional = true } sha-3 = { package = "sha3", version = "0.10", optional = true } strip-ansi-escapes = { version = "0.2", optional = true } snap = { version = "1", optional = true } syslog_loose = { version = "0.21", optional = true } termcolor = {version = "1", optional = true } thiserror ={ version = "1", optional = true } tracing = { version = "0.1", default-features = false } uaparser = { version = "0.6", default-features = false, optional = true } utf8-width = { version = "0.1", optional = true } url = { version = "2", optional = true } snafu = { version = "0.8", optional = true } webbrowser = { version = "1.0", default-features = false, optional = true } woothee = { version = "0.13", optional = true } community-id = { version = "0.2", optional = true} zstd = { version = "0.13", default-features = false, features = ["wasm"], optional = true } # Cryptography aes = { version = "0.8", optional = true } chacha20poly1305 = { version = "0.10", optional = true } crypto_secretbox = { version = "0.1", features = ["salsa20"], optional = true } # Cryptography - Block Modes ctr = { version = "0.9", optional = true } cbc = { version = "0.1", optional = true, features = ["alloc"] } cfb-mode = { version = "0.8", optional = true } ofb = { version = "0.6", optional = true } # Protobuf support. prost = { version = "0.13", default-features = false, optional = true, features = ["std"]} prost-reflect = { version = "0.14", default-features = false, optional = true} # Dependencies used for non-WASM [target.'cfg(not(target_arch = "wasm32"))'.dependencies] dns-lookup = { version = "2", optional = true } domain = { version = "0.10.1", optional = true, features = ["resolv-sync", "serde"] } hostname = { version = "0.4", optional = true } grok = { version = "2", optional = true } onig = { version = "6", default-features = false, optional = true } tokio = { version = "1.38", optional = true, features = ["io-util", "macros", "net", "time", "sync", "rt", "rt-multi-thread" ] } uuid = { version = "1", features = ["v4", "v7"], optional = true } # Dependencies used for WASM [target.'cfg(target_arch = "wasm32")'.dependencies] uuid = { version = "1", features = ["v4", "v7", "js"], optional = true } [dev-dependencies] anyhow = "1" criterion = "0.5" chrono-tz = "0.10" serde_json = "1" indoc = "2" tracing-test = { version = "0.2", default-features = false } toml = { version = "0.8", default-features = false } mlua = { version = "0.9", default-features = false, features = ["lua54", "send", "vendored"]} quickcheck = { version = "1"} regex = { version = "1", default-features = false, features = ["std", "perf", "unicode"] } paste = { version = "1", default-features = false } proptest = { version = "1" } proptest-derive = { version = "0.4" } [build-dependencies] lalrpop = { version = "0.20", default-features = false } [[bench]] name = "kind" harness = false [[bench]] name = "keyvalue" harness = false [[bench]] name = "stdlib" harness = false required-features = ["default", "test"]