diff --git a/Cargo.lock b/Cargo.lock
index d7095c55b158d..1ecb861658bbe 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -7826,13 +7826,16 @@ dependencies = [
"ahash 0.8.11",
"bytes 1.11.1",
"chrono",
+ "flate2",
"hashbrown 0.13.2",
"num",
"num-bigint",
"paste",
"seq-macro",
+ "snap",
"thrift",
"twox-hash 1.6.3",
+ "zstd 0.12.4",
]
[[package]]
diff --git a/lib/codecs/Cargo.toml b/lib/codecs/Cargo.toml
index a81de3e51239f..7cbc0c1c3aaca 100644
--- a/lib/codecs/Cargo.toml
+++ b/lib/codecs/Cargo.toml
@@ -31,7 +31,7 @@ memchr = { version = "2", default-features = false }
metrics.workspace = true
opentelemetry-proto = { path = "../opentelemetry-proto", optional = true }
ordered-float.workspace = true
-parquet = { version = "39.0.0", default-features = false }
+parquet = { version = "39.0.0", default-features = false, features = ["snap", "flate2", "zstd"] }
pin-project.workspace = true
prost.workspace = true
prost-reflect.workspace = true
diff --git a/lib/codecs/src/encoding/config.rs b/lib/codecs/src/encoding/config.rs
index 096c28f86b6ef..15ee5c53ddfef 100644
--- a/lib/codecs/src/encoding/config.rs
+++ b/lib/codecs/src/encoding/config.rs
@@ -152,8 +152,14 @@ impl EncodingConfigWithFraming {
/// Build a `BatchSerializer` for this config, if the configured serializer is batched
/// (e.g. Parquet). Returns `None` for per-event serializers.
- pub fn build_batched(&self) -> vector_common::Result