1pub mod chunking;
5mod config;
6mod encoder;
7pub mod format;
8pub mod framing;
9pub mod serializer;
10mod transformer;
11pub use chunking::{Chunker, Chunking, GelfChunker};
12pub use config::{EncodingConfig, EncodingConfigWithFraming, SinkType};
13pub use encoder::{BatchEncoder, BatchOutput, BatchSerializer, Encoder, EncoderKind};
14#[cfg(feature = "arrow")]
15pub use format::{
16 ArrowEncodingError, ArrowStreamSerializer, ArrowStreamSerializerConfig, SchemaProvider,
17 find_null_non_nullable_fields,
18};
19pub use format::{
20 AvroSerializer, AvroSerializerConfig, AvroSerializerOptions, CefSerializer,
21 CefSerializerConfig, CsvSerializer, CsvSerializerConfig, GelfSerializer, GelfSerializerConfig,
22 JsonSerializer, JsonSerializerConfig, JsonSerializerOptions, LogfmtSerializer,
23 LogfmtSerializerConfig, NativeJsonSerializer, NativeJsonSerializerConfig, NativeSerializer,
24 NativeSerializerConfig, ProtoBatchEncodingError, ProtoBatchSerializer,
25 ProtoBatchSerializerConfig, ProtobufSerializer, ProtobufSerializerConfig,
26 ProtobufSerializerOptions, RawMessageSerializer, RawMessageSerializerConfig, TextSerializer,
27 TextSerializerConfig,
28};
29#[cfg(feature = "opentelemetry")]
30pub use format::{OtlpSerializer, OtlpSerializerConfig};
31#[cfg(feature = "parquet")]
32pub use format::{
33 ParquetCompression, ParquetSchemaMode, ParquetSerializer, ParquetSerializerConfig,
34};
35#[cfg(feature = "syslog")]
36pub use format::{SyslogSerializer, SyslogSerializerConfig};
37pub use framing::{
38 BoxedFramer, BoxedFramingError, BytesEncoder, BytesEncoderConfig, CharacterDelimitedEncoder,
39 CharacterDelimitedEncoderConfig, CharacterDelimitedEncoderOptions, Framer, FramingConfig,
40 LengthDelimitedEncoder, LengthDelimitedEncoderConfig, NewlineDelimitedEncoder,
41 NewlineDelimitedEncoderConfig, VarintLengthDelimitedEncoder,
42 VarintLengthDelimitedEncoderConfig,
43};
44pub use serializer::{BatchSerializerConfig, Serializer, SerializerConfig};
45pub use transformer::{TimestampFormat, Transformer};
46
47pub type BuildError = Box<dyn std::error::Error + Send + Sync + 'static>;
49
50#[derive(Debug)]
52pub enum Error {
53 FramingError(BoxedFramingError),
55 SerializingError(vector_common::Error),
57 SchemaConstraintViolation(vector_common::Error),
59}
60
61impl std::fmt::Display for Error {
62 fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
63 match self {
64 Self::FramingError(error) => write!(formatter, "FramingError({error})"),
65 Self::SerializingError(error) => write!(formatter, "SerializingError({error})"),
66 Self::SchemaConstraintViolation(error) => {
67 write!(formatter, "SchemaConstraintViolation({error})")
68 }
69 }
70 }
71}
72
73impl std::error::Error for Error {}
74
75impl From<std::io::Error> for Error {
76 fn from(error: std::io::Error) -> Self {
77 Self::FramingError(Box::new(error))
78 }
79}