From 7023713bbd2d6b4878f79b527a0a542c0947a90f Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Mon, 10 Aug 2026 18:43:25 -0700 Subject: [PATCH 1/2] Docs: Add SeaweedFS REST catalog and FileIO configuration examples --- mkdocs/docs/configuration.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/mkdocs/docs/configuration.md b/mkdocs/docs/configuration.md index 44b5e395a9..20cd5eaaa4 100644 --- a/mkdocs/docs/configuration.md +++ b/mkdocs/docs/configuration.md @@ -242,6 +242,21 @@ Tencent Cloud Object Storage (COS) is S3-compatible and can be used with PyIcebe +### SeaweedFS + + + +[SeaweedFS](https://github.com/seaweedfs/seaweedfs) is S3-compatible and can be used with PyIceberg using the existing S3FileIO / PyArrowFileIO implementation. + +| Key | Example | Description | +| -------------------- | ----------------------- | --------------------------------- | +| s3.endpoint | | SeaweedFS S3 gateway endpoint | +| s3.access-key-id | admin | Configured S3 access key | +| s3.secret-access-key | password | Configured S3 secret key | +| s3.path-style-access | true | SeaweedFS serves path-style URLs | + + + ### Hugging Face @@ -653,6 +668,23 @@ catalog: Use the `entra` auth type for Entra ID (Azure AD) authentication via [DefaultAzureCredential](https://learn.microsoft.com/en-us/azure/developer/python/sdk/authentication/credential-chains?tabs=dac#defaultazurecredential-overview), which supports environment variables, managed identity, Azure CLI, and more. Install with `pip install pyiceberg[entra-auth]`. +##### SeaweedFS + +[SeaweedFS](https://github.com/seaweedfs/seaweedfs) table buckets serve an Iceberg REST catalog for table metadata and store the table data as Parquet files behind the same S3 gateway: + +```yaml +catalog: + seaweedfs_catalog: + type: rest + uri: http://:8181 + warehouse: s3:// + credential: : + s3.endpoint: http://:8333 + s3.access-key-id: + s3.secret-access-key: + s3.path-style-access: true +``` + ### SQL Catalog The SQL catalog requires a database for its backend. PyIceberg supports PostgreSQL and SQLite through psycopg2. The database connection has to be configured using the `uri` property. The init_catalog_tables is optional and defaults to True. If it is set to False, the catalog tables will not be created when the SQLCatalog is initialized. See SQLAlchemy's [documentation for URL format](https://docs.sqlalchemy.org/en/20/core/engines.html#backend-specific-urls): From 7490974413572c378727f436b6f5d78ad1f00e6c Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Mon, 10 Aug 2026 19:04:27 -0700 Subject: [PATCH 2/2] Rename catalog example heading to avoid duplicate --- mkdocs/docs/configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs/docs/configuration.md b/mkdocs/docs/configuration.md index 20cd5eaaa4..a6dfa24f38 100644 --- a/mkdocs/docs/configuration.md +++ b/mkdocs/docs/configuration.md @@ -668,7 +668,7 @@ catalog: Use the `entra` auth type for Entra ID (Azure AD) authentication via [DefaultAzureCredential](https://learn.microsoft.com/en-us/azure/developer/python/sdk/authentication/credential-chains?tabs=dac#defaultazurecredential-overview), which supports environment variables, managed identity, Azure CLI, and more. Install with `pip install pyiceberg[entra-auth]`. -##### SeaweedFS +##### SeaweedFS Table Buckets [SeaweedFS](https://github.com/seaweedfs/seaweedfs) table buckets serve an Iceberg REST catalog for table metadata and store the table data as Parquet files behind the same S3 gateway: