Skip to content

Commit 5e218a1

Browse files
committed
Add iceberg-sigv4 Crate and MinIOCatalog
For Iceberg Ecosystem Integration this PR introduces a standalone SigV4 authentication crate (iceberg-sigv4) and adds optional iceberg-rust type compatibility, enabling better integration with the Apache Iceberg ecosystem while keeping iceberg-rust as an internal implementation detail invisible to SDK users. It uses iceberg-rust as base for building this echo system. Signed-off-by: Shubhendu Ram Tripathi <shubhendu@minio.io>
1 parent 9d64ff6 commit 5e218a1

File tree

17 files changed

+4013
-205
lines changed

17 files changed

+4013
-205
lines changed

Cargo.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
[workspace]
2+
members = [".", "crates/iceberg-sigv4"]
3+
14
[package]
25
name = "minio"
36
version = "0.3.0"
@@ -24,6 +27,9 @@ http2 = ["reqwest/http2"]
2427
localhost = []
2528
# Puffin compression support for Iceberg table compression
2629
puffin-compression = ["dep:zstd", "dep:lz4_flex"]
30+
# Enable iceberg-rust type compatibility layer
31+
# Provides conversions between minio-rs types and iceberg-rust types
32+
iceberg-compat = ["dep:iceberg"]
2733

2834
[workspace.dependencies]
2935
uuid = "1.19"
@@ -45,6 +51,7 @@ futures-util = { workspace = true }
4551
bytes = { workspace = true }
4652
async-std = { workspace = true, features = ["attributes"] }
4753
reqwest = { workspace = true, features = ["stream"] }
54+
iceberg-sigv4 = { path = "crates/iceberg-sigv4" }
4855

4956
async-recursion = "1.1"
5057
async-stream = "0.3"
@@ -78,6 +85,8 @@ tokio = { workspace = true, optional = true, features = ["rt-multi-thread"] }
7885
# Puffin compression (optional, for Iceberg table compression)
7986
zstd = { version = "0.13", optional = true }
8087
lz4_flex = { version = "0.11", optional = true }
88+
# iceberg-rust for type compatibility (optional)
89+
iceberg = { version = "0.7", optional = true }
8190

8291
[dev-dependencies]
8392
minio-common = { path = "./common" }

0 commit comments

Comments
 (0)