codecs/encoding/format/
mod.rs

1//! A collection of formats that can be used to convert from structured events
2//! to byte frames.
3
4#![deny(missing_docs)]
5
6#[cfg(feature = "arrow")]
7mod arrow;
8mod avro;
9mod cef;
10mod common;
11mod csv;
12mod gelf;
13mod json;
14mod logfmt;
15mod native;
16mod native_json;
17#[cfg(feature = "opentelemetry")]
18mod otlp;
19#[cfg(feature = "parquet")]
20mod parquet;
21mod proto_batch;
22mod protobuf;
23mod raw_message;
24#[cfg(feature = "syslog")]
25mod syslog;
26mod text;
27
28use std::fmt::Debug;
29
30#[cfg(feature = "parquet")]
31pub use self::parquet::{
32    ParquetCompression, ParquetSchemaMode, ParquetSerializer, ParquetSerializerConfig,
33};
34#[cfg(feature = "arrow")]
35pub use arrow::{
36    ArrowEncodingError, ArrowStreamSerializer, ArrowStreamSerializerConfig, SchemaProvider,
37    find_null_non_nullable_fields,
38};
39pub use avro::{AvroSerializer, AvroSerializerConfig, AvroSerializerOptions};
40pub use cef::{CefSerializer, CefSerializerConfig};
41use dyn_clone::DynClone;
42pub use gelf::{GelfSerializer, GelfSerializerConfig};
43pub use json::{JsonSerializer, JsonSerializerConfig, JsonSerializerOptions};
44pub use logfmt::{LogfmtSerializer, LogfmtSerializerConfig};
45pub use native::{NativeSerializer, NativeSerializerConfig};
46pub use native_json::{NativeJsonSerializer, NativeJsonSerializerConfig};
47#[cfg(feature = "opentelemetry")]
48pub use otlp::{OtlpSerializer, OtlpSerializerConfig};
49pub use proto_batch::{ProtoBatchEncodingError, ProtoBatchSerializer, ProtoBatchSerializerConfig};
50pub use protobuf::{ProtobufSerializer, ProtobufSerializerConfig, ProtobufSerializerOptions};
51pub use raw_message::{RawMessageSerializer, RawMessageSerializerConfig};
52#[cfg(feature = "syslog")]
53pub use syslog::{SyslogSerializer, SyslogSerializerConfig};
54pub use text::{TextSerializer, TextSerializerConfig};
55use vector_core::event::Event;
56
57pub use self::csv::{CsvSerializer, CsvSerializerConfig};
58
59/// Serialize a structured event into a byte frame.
60pub trait Serializer:
61    tokio_util::codec::Encoder<Event, Error = vector_common::Error> + DynClone + Debug + Send + Sync
62{
63}
64
65/// Default implementation for `Serializer`s that implement
66/// `tokio_util::codec::Encoder`.
67impl<Encoder> Serializer for Encoder where
68    Encoder: tokio_util::codec::Encoder<Event, Error = vector_common::Error>
69        + Clone
70        + Debug
71        + Send
72        + Sync
73{
74}
75
76dyn_clone::clone_trait_object!(Serializer);