codecs/
lib.rs

1//! A collection of codecs that can be used to transform between bytes streams /
2//! byte messages, byte frames and structured events.
3
4#![deny(missing_docs)]
5#![deny(warnings)]
6
7mod common;
8pub mod decoding;
9pub mod encoding;
10pub mod gelf;
11
12pub use decoding::{
13    BytesDecoder, BytesDecoderConfig, BytesDeserializer, BytesDeserializerConfig,
14    CharacterDelimitedDecoder, CharacterDelimitedDecoderConfig, GelfDeserializer,
15    GelfDeserializerConfig, JsonDeserializer, JsonDeserializerConfig, LengthDelimitedDecoder,
16    LengthDelimitedDecoderConfig, NativeDeserializer, NativeDeserializerConfig,
17    NativeJsonDeserializer, NativeJsonDeserializerConfig, NewlineDelimitedDecoder,
18    NewlineDelimitedDecoderConfig, OctetCountingDecoder, OctetCountingDecoderConfig,
19    StreamDecodingError,
20};
21#[cfg(feature = "syslog")]
22pub use decoding::{SyslogDeserializer, SyslogDeserializerConfig};
23pub use encoding::{
24    BytesEncoder, BytesEncoderConfig, CharacterDelimitedEncoder, CharacterDelimitedEncoderConfig,
25    CsvSerializer, CsvSerializerConfig, GelfSerializer, GelfSerializerConfig, JsonSerializer,
26    JsonSerializerConfig, LengthDelimitedEncoder, LengthDelimitedEncoderConfig, LogfmtSerializer,
27    LogfmtSerializerConfig, NativeJsonSerializer, NativeJsonSerializerConfig, NativeSerializer,
28    NativeSerializerConfig, NewlineDelimitedEncoder, NewlineDelimitedEncoderConfig,
29    RawMessageSerializer, RawMessageSerializerConfig, TextSerializer, TextSerializerConfig,
30};
31pub use gelf::{gelf_fields, VALID_FIELD_REGEX};
32use vector_config_macros::configurable_component;
33
34/// The user configuration to choose the metric tag strategy.
35#[configurable_component]
36#[derive(Copy, Clone, Debug, PartialEq, Eq, Default)]
37#[serde(rename_all = "snake_case")]
38pub enum MetricTagValues {
39    /// Tag values are exposed as single strings, the same as they were before this config
40    /// option. Tags with multiple values show the last assigned value, and null values
41    /// are ignored.
42    #[default]
43    Single,
44    /// All tags are exposed as arrays of either string or null values.
45    Full,
46}