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
6mod avro;
7mod cef;
8mod common;
9mod csv;
10mod gelf;
11mod json;
12mod logfmt;
13mod native;
14mod native_json;
15mod protobuf;
16mod raw_message;
17mod text;
18
19use std::fmt::Debug;
20
21pub use avro::{AvroSerializer, AvroSerializerConfig, AvroSerializerOptions};
22pub use cef::{CefSerializer, CefSerializerConfig};
23use dyn_clone::DynClone;
24pub use gelf::{GelfSerializer, GelfSerializerConfig};
25pub use json::{JsonSerializer, JsonSerializerConfig, JsonSerializerOptions};
26pub use logfmt::{LogfmtSerializer, LogfmtSerializerConfig};
27pub use native::{NativeSerializer, NativeSerializerConfig};
28pub use native_json::{NativeJsonSerializer, NativeJsonSerializerConfig};
29pub use protobuf::{ProtobufSerializer, ProtobufSerializerConfig, ProtobufSerializerOptions};
30pub use raw_message::{RawMessageSerializer, RawMessageSerializerConfig};
31pub use text::{TextSerializer, TextSerializerConfig};
32use vector_core::event::Event;
33
34pub use self::csv::{CsvSerializer, CsvSerializerConfig};
35
36/// Serialize a structured event into a byte frame.
37pub trait Serializer:
38    tokio_util::codec::Encoder<Event, Error = vector_common::Error> + DynClone + Debug + Send + Sync
39{
40}
41
42/// Default implementation for `Serializer`s that implement
43/// `tokio_util::codec::Encoder`.
44impl<Encoder> Serializer for Encoder where
45    Encoder: tokio_util::codec::Encoder<Event, Error = vector_common::Error>
46        + Clone
47        + Debug
48        + Send
49        + Sync
50{
51}
52
53dyn_clone::clone_trait_object!(Serializer);