0.4.0 RC0
build(deps): bump the gomod_updates group with 3 updates (#573)

Bumps the gomod_updates group with 3 updates:
[cloud.google.com/go/storage](https://github.com/googleapis/google-cloud-go),
[github.com/Azure/azure-sdk-for-go/sdk/azidentity](https://github.com/Azure/azure-sdk-for-go)
and
[github.com/testcontainers/testcontainers-go/modules/compose](https://github.com/testcontainers/testcontainers-go).

Updates `cloud.google.com/go/storage` from 1.56.1 to 1.56.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/google-cloud-go/releases">cloud.google.com/go/storage's
releases</a>.</em></p>
<blockquote>
<h2>storage: v1.56.2</h2>
<h2><a
href="https://github.com/googleapis/google-cloud-go/compare/storage/v1.56.1...storage/v1.56.2">1.56.2</a>
(2025-09-15)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>storage:</strong> Free buffers in Bidi Reader (<a
href="https://redirect.github.com/googleapis/google-cloud-go/issues/12839">#12839</a>)
(<a
href="https://github.com/googleapis/google-cloud-go/commit/10c8faccc2dae2a8177ff30ab16d67413df9f536">10c8fac</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/bda509de8efbccadb53d2c346c881ca266179c53"><code>bda509d</code></a>
chore(release-storage-1.56.2): release storage 1.56.2 (<a
href="https://redirect.github.com/googleapis/google-cloud-go/issues/12873">#12873</a>)</li>
<li><a
href="https://github.com/googleapis/google-cloud-go/commit/10c8faccc2dae2a8177ff30ab16d67413df9f536"><code>10c8fac</code></a>
fix(storage): free buffers in Bidi Reader (<a
href="https://redirect.github.com/googleapis/google-cloud-go/issues/12839">#12839</a>)</li>
<li>See full diff in <a
href="https://github.com/googleapis/google-cloud-go/compare/storage/v1.56.1...storage/v1.56.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `github.com/Azure/azure-sdk-for-go/sdk/azidentity` from 1.10.1
to 1.12.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Azure/azure-sdk-for-go/releases">github.com/Azure/azure-sdk-for-go/sdk/azidentity's
releases</a>.</em></p>
<blockquote>
<h2>sdk/azidentity/v1.12.0</h2>
<h2>1.12.0 (2025-09-16)</h2>
<h3>Features Added</h3>
<ul>
<li>Added
<code>DefaultAzureCredentialOptions.RequireAzureTokenCredentials</code>.
<code>NewDefaultAzureCredential</code> returns an
error when this option is true and the environment variable
<code>AZURE_TOKEN_CREDENTIALS</code> has no value.</li>
</ul>
<h3>Other Changes</h3>
<ul>
<li><code>AzureDeveloperCLICredential</code> no longer hangs when
AZD_DEBUG is set</li>
<li><code>GetToken</code> methods of <code>AzureCLICredential</code> and
<code>AzureDeveloperCLICredential</code> return an error when
<code>TokenRequestOptions.Claims</code> has a value because these
credentials can't acquire a token in that
case. The error messages describe the action required to get a
token.</li>
</ul>
<h2>sdk/internal/v1.11.2</h2>
<h2>1.11.2 (2025-07-30)</h2>
<h3>Other Changes</h3>
<ul>
<li><code>errorinfo.NonRetriable()</code> doesn't wrap errors which are
already <code>NonRetriable</code></li>
</ul>
<h2>sdk/azidentity/v1.11.0</h2>
<h2>1.11.0 (2025-08-05)</h2>
<h3>Other Changes</h3>
<ul>
<li><code>DefaultAzureCredential</code> tries its next credential when a
dev tool credential such as
<code>AzureCLICredential</code> returns an error</li>
</ul>
<h2>sdk/azidentity/v1.11.0-beta.1</h2>
<h2>1.11.0-beta.1 (2025-07-15)</h2>
<h3>Features Added</h3>
<ul>
<li><code>DefaultAzureCredential</code> allows selecting one of its
credential types by name via environment variable
<code>AZURE_TOKEN_CREDENTIALS</code>. It will use only the selected type
at runtime. For example, set
<code>AZURE_TOKEN_CREDENTIALS=WorkloadIdentityCredential</code> to have
<code>DefaultAzureCredential</code> use only
<code>WorkloadIdentityCredential</code>.</li>
</ul>
<h3>Other Changes</h3>
<ul>
<li>By default, <code>ManagedIdentityCredential</code> retries IMDS
requests for a maximum of ~70 seconds as recommended
in IMDS documentation. In previous versions, it would stop retrying
after ~54 seconds by default.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Azure/azure-sdk-for-go/commit/e58902b242459d7a4a42c8c0113937b26ac495af"><code>e58902b</code></a>
Prep azcore v1.12.0 for release (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/23005">#23005</a>)</li>
<li><a
href="https://github.com/Azure/azure-sdk-for-go/commit/9ad32c5a2db85ef5f697e5d3376a73efaebd19ae"><code>9ad32c5</code></a>
Increment package version after release of internal (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/23004">#23004</a>)</li>
<li><a
href="https://github.com/Azure/azure-sdk-for-go/commit/897e9035c566063952597bc3b470858e866c2a0b"><code>897e903</code></a>
Update ignore-links.txt (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/23003">#23003</a>)</li>
<li><a
href="https://github.com/Azure/azure-sdk-for-go/commit/ac7cc049bf63dc129ad246dbe21ac7a6ca42a578"><code>ac7cc04</code></a>
[keyvault] fix test recording sanitizers (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22911">#22911</a>)</li>
<li><a
href="https://github.com/Azure/azure-sdk-for-go/commit/276cf8c8e230d25d0872babca0a5965514760e19"><code>276cf8c</code></a>
update readme (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22971">#22971</a>)</li>
<li><a
href="https://github.com/Azure/azure-sdk-for-go/commit/5eb479f45a231f434b00411e57b17c53137d35ea"><code>5eb479f</code></a>
[azopenai] Updating hash to merged PR. (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22998">#22998</a>)</li>
<li><a
href="https://github.com/Azure/azure-sdk-for-go/commit/9c4f5c55f5439bcd7e3b5290fb31b2e145f2ebf8"><code>9c4f5c5</code></a>
Prepare sdk/internal v1.9.0 for release (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22991">#22991</a>)</li>
<li><a
href="https://github.com/Azure/azure-sdk-for-go/commit/b407f56cbce00d7d3ff51ac864fd1d04a88a08a1"><code>b407f56</code></a>
Increment version for messaging/azwebpubsub releases (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22466">#22466</a>)</li>
<li><a
href="https://github.com/Azure/azure-sdk-for-go/commit/3af4c7ee716193b8e6755307ef1d27c041614752"><code>3af4c7e</code></a>
update mgmt live test (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22996">#22996</a>)</li>
<li><a
href="https://github.com/Azure/azure-sdk-for-go/commit/b7d018ea5d4e2c59ef91f8b42d3307262bf3e81b"><code>b7d018e</code></a>
fix sdk/resourcemanager/internal module (<a
href="https://redirect.github.com/Azure/azure-sdk-for-go/issues/22994">#22994</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/Azure/azure-sdk-for-go/compare/sdk/azidentity/v1.10.1...sdk/azcore/v1.12.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `github.com/testcontainers/testcontainers-go/modules/compose`
from 0.38.0 to 0.39.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/testcontainers/testcontainers-go/releases">github.com/testcontainers/testcontainers-go/modules/compose's
releases</a>.</em></p>
<blockquote>
<h2>v0.39.0</h2>
<h1>What's Changed</h1>
<h2>🚀 Features</h2>
<ul>
<li>feat(atlaslocal): add MongoDB Atlas Local module (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3254">#3254</a>)
<a
href="https://github.com/prestonvasquez"><code>@​prestonvasquez</code></a></li>
<li>feat: allow saving specific platforms for an image (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3218">#3218</a>)
<a
href="https://github.com/LaurentGoderre"><code>@​LaurentGoderre</code></a></li>
<li>feat(redpanda): add support for http proxy (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3258">#3258</a>)
<a href="https://github.com/simon0191"><code>@​simon0191</code></a></li>
<li>feat(nebulagraph): add NebulaGraph module (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3266">#3266</a>)
<a href="https://github.com/egasimov"><code>@​egasimov</code></a></li>
<li>feat(registry): add helper functions to pull and tag images (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3275">#3275</a>)
<a
href="https://github.com/mdelapenya"><code>@​mdelapenya</code></a></li>
<li>feat: add Solace pubsub+ module (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3230">#3230</a>)
<a href="https://github.com/unicod3"><code>@​unicod3</code></a></li>
<li>feat(options): add WithProvider (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3241">#3241</a>)
<a
href="https://github.com/dfioravanti"><code>@​dfioravanti</code></a></li>
<li>feat(mcpgateay): add Docker's MCP gateway module (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3232">#3232</a>)
<a
href="https://github.com/mdelapenya"><code>@​mdelapenya</code></a></li>
</ul>
<h2>🐛 Bug Fixes</h2>
<ul>
<li>fix: preserve unix socket schema in testcontainersHostFromProperties
(<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3213">#3213</a>)
<a href="https://github.com/knqyf263"><code>@​knqyf263</code></a></li>
<li>fix(reaper): remove termSignal override (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3261">#3261</a>)
<a href="https://github.com/buraindo"><code>@​buraindo</code></a></li>
<li>fix(registry): update <code>WithHtpasswd</code> to use
<code>os.CreateTemp</code> instead of <code>os.Create</code> with
<code>filepath.Join</code>. (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3272">#3272</a>)
<a
href="https://github.com/jakobmoellerdev"><code>@​jakobmoellerdev</code></a></li>
<li>fix(nats): use wait for listening port instead of wait for log (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3256">#3256</a>)
<a href="https://github.com/own2pwn"><code>@​own2pwn</code></a></li>
<li>fix(postgres): snapshot restore (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3264">#3264</a>)
<a href="https://github.com/ascheman"><code>@​ascheman</code></a></li>
</ul>
<h2>📖 Documentation</h2>
<ul>
<li>docs: clarify no client SDKs in production modules/images, in
contributing.md (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3279">#3279</a>)
<a href="https://github.com/nimdrak"><code>@​nimdrak</code></a></li>
</ul>
<h2>🧹 Housekeeping</h2>
<ul>
<li>chore(atlas): simplify host-port calculation in tests (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3300">#3300</a>)
<a
href="https://github.com/mdelapenya"><code>@​mdelapenya</code></a></li>
<li>chore(deps): bump tj-actions/changed-files from 46.0.3 to 47.0.0 (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3283">#3283</a>)
@<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li>
<li>chore(modulegen): detect missing project files after new module
creation (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3281">#3281</a>)
<a
href="https://github.com/mdelapenya"><code>@​mdelapenya</code></a></li>
<li>chore(release): refine release script to update inter-module
dependencies (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3273">#3273</a>)
<a
href="https://github.com/mdelapenya"><code>@​mdelapenya</code></a></li>
<li>chore(postgres): use require.NotNil instead of assert.NotNil (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3252">#3252</a>)
<a
href="https://github.com/nolandseigler"><code>@​nolandseigler</code></a></li>
<li>fix(dockermcpgateway): use duckduckgo instead of brave (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3247">#3247</a>)
<a
href="https://github.com/mdelapenya"><code>@​mdelapenya</code></a></li>
</ul>
<h2>📦 Dependency updates</h2>
<ul>
<li>chore(deps): bump golang.org/x/net from 0.28.0 to 0.38.0 (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3299">#3299</a>)
@<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li>
<li>chore(deps): bump dario.cat/mergo from 1.0.1 to 1.0.2 (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3238">#3238</a>)
@<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li>
<li>chore(deps): bump golang.org/x/sys from 0.32.0 to 0.36.0 (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3282">#3282</a>)
@<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li>
<li>chore(deps): bump github/codeql-action from 3.29.3 to 3.30.3 (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3287">#3287</a>)
@<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li>
<li>chore(go): bump to Go 1.24 as minimal version (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3298">#3298</a>)
<a
href="https://github.com/mdelapenya"><code>@​mdelapenya</code></a></li>
<li>deps(mongodb): update MongoDB Go Driver to v2 (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3278">#3278</a>)
<a
href="https://github.com/matthewdale"><code>@​matthewdale</code></a></li>
<li>chore(deps): bump github.com/shirou/gopsutil/v4 from 4.25.5 to
4.25.6 (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3224">#3224</a>)
@<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li>
<li>chore(deps): bump mkdocs-include-markdown-plugin from 7.1.6 to 7.1.7
(<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3284">#3284</a>)
@<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li>
<li>chore(deps): bump github.com/docker/go-connections from 0.5.0 to
0.6.0 (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3285">#3285</a>)
@<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li>
<li>chore(deps): bump tj-actions/changed-files from 46.0.3 to 47.0.0 (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3283">#3283</a>)
@<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li>
<li>chore(deps): bump github.com/docker/docker from 28.2.2+incompatible
to 28.3.3+incompatible in /modules/nebulagraph (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3277">#3277</a>)
@<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li>
<li>chore(deps): bump ryuk to v0.13.0, which uses scratch as base image
(<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3274">#3274</a>)
<a
href="https://github.com/mdelapenya"><code>@​mdelapenya</code></a></li>
<li>chore(deps): bump github.com/docker/docker from 28.2.2+incompatible
to 28.3.3+incompatible (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3270">#3270</a>)
<a
href="https://github.com/mdelapenya"><code>@​mdelapenya</code></a></li>
<li>chore(deps): bump github.com/go-viper/mapstructure/v2 from 2.3.0 to
2.4.0 in /modules/compose (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3267">#3267</a>)
@<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/testcontainers/testcontainers-go/commit/da47f5d8e652a9a76d7adada8e37240044ce7424"><code>da47f5d</code></a>
chore: use new version (v0.39.0) in modules and examples</li>
<li><a
href="https://github.com/testcontainers/testcontainers-go/commit/404b3453ee0acea29821bab2e36bdccfed541777"><code>404b345</code></a>
chore(atlas): simplify host-port calculation in tests (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3300">#3300</a>)</li>
<li><a
href="https://github.com/testcontainers/testcontainers-go/commit/6e14bda839461bc5c76bd76bb7ff8d36cc9662d7"><code>6e14bda</code></a>
feat(atlaslocal): add MongoDB Atlas Local module (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3254">#3254</a>)</li>
<li><a
href="https://github.com/testcontainers/testcontainers-go/commit/1fdd847cf3a5c8c1856da3dc3113aea423da75ee"><code>1fdd847</code></a>
chore(deps): bump golang.org/x/net from 0.28.0 to 0.38.0 (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3299">#3299</a>)</li>
<li><a
href="https://github.com/testcontainers/testcontainers-go/commit/88dead6ad12658bf28c233c16466d990ae6ab93a"><code>88dead6</code></a>
feat: allow saving specific platforms for an image (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3218">#3218</a>)</li>
<li><a
href="https://github.com/testcontainers/testcontainers-go/commit/44d970c870f5c20b8a170401dd7d08a68ce052b1"><code>44d970c</code></a>
chore(deps): bump dario.cat/mergo from 1.0.1 to 1.0.2 (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3238">#3238</a>)</li>
<li><a
href="https://github.com/testcontainers/testcontainers-go/commit/ac8fdd3dda3649a2099db5e55c891639955208f2"><code>ac8fdd3</code></a>
chore(deps): bump golang.org/x/sys from 0.32.0 to 0.36.0 (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3282">#3282</a>)</li>
<li><a
href="https://github.com/testcontainers/testcontainers-go/commit/d254caa29675a0945cf21f233b4c397a6e95bdd0"><code>d254caa</code></a>
feat(redpanda): add support for http proxy (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3258">#3258</a>)</li>
<li><a
href="https://github.com/testcontainers/testcontainers-go/commit/f54a3566cf33b64e4866293997c9b153b930561b"><code>f54a356</code></a>
chore(deps): bump github/codeql-action from 3.29.3 to 3.30.3 (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3287">#3287</a>)</li>
<li><a
href="https://github.com/testcontainers/testcontainers-go/commit/7098d80b52521177aa4e39f78d5783bf9a9840b7"><code>7098d80</code></a>
chore(go): bump to Go 1.24 as minimal version (<a
href="https://redirect.github.com/testcontainers/testcontainers-go/issues/3298">#3298</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/testcontainers/testcontainers-go/compare/v0.38.0...v0.39.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 files changed
tree: 1d658ea768f88387d589edb1a14c817b059b6952
  1. .github/
  2. catalog/
  3. cmd/
  4. config/
  5. dev/
  6. internal/
  7. io/
  8. table/
  9. utils/
  10. website/
  11. .asf.yaml
  12. .gitattributes
  13. .gitignore
  14. .golangci.bck.yml
  15. .golangci.yml
  16. .pre-commit-config.yaml
  17. CONTRIBUTING.md
  18. errors.go
  19. exprs.go
  20. exprs_test.go
  21. go.mod
  22. go.sum
  23. LICENSE
  24. literals.go
  25. literals_test.go
  26. manifest.go
  27. manifest_test.go
  28. name_mapping.go
  29. name_mapping_test.go
  30. NOTICE
  31. operation_string.go
  32. partitions.go
  33. partitions_test.go
  34. predicates.go
  35. README.md
  36. schema.go
  37. schema_conversions.go
  38. schema_conversions_test.go
  39. schema_test.go
  40. transforms.go
  41. transforms_test.go
  42. types.go
  43. types_test.go
  44. utils.go
  45. visitors.go
  46. visitors_test.go
README.md

Iceberg Golang

Go Reference

iceberg is a Golang implementation of the Iceberg table spec.

Build From Source

Prerequisites

  • Go 1.23 or later

Build

$ git clone https://github.com/apache/iceberg-go.git
$ cd iceberg-go/cmd/iceberg && go build .

Feature Support / Roadmap

FileSystem Support

Filesystem TypeSupported
S3X
Google Cloud StorageX
Azure Blob StorageX
Local FilesystemX

Metadata

OperationSupported
Get SchemaX
Get SnapshotsX
Get Sort OrdersX
Get Partition SpecsX
Get ManifestsX
Create New ManifestsX
Plan Scanx
Plan Scan for Snapshotx

Catalog Support

OperationRESTHiveGlueSQL
Load TableXXX
List TablesXXX
Create TableXXX
Register TableXX
Update Current SnapshotXXX
Create New SnapshotXXX
Rename TableXXX
Drop TableXXX
Alter TableXXX
Check Table ExistsXXX
Set Table PropertiesXXX
List NamespacesXXX
Create NamespaceXXX
Check Namespace ExistsXXX
Drop NamespaceXXX
Update Namespace PropertiesXXX
Create ViewXX
Load ViewX
List ViewXX
Drop ViewXX
Check View ExistsXX

Read/Write Data Support

  • Data can currently be read as an Arrow Table or as a stream of Arrow record batches.

Supported Write Operations

As long as the FileSystem is supported and the Catalog supports altering the table, the following tracks the current write support:

OperationSupported
Append StreamX
Append Data FilesX
Rewrite Files
Rewrite manifests
Overwrite Files
Write Pos Delete
Write Eq Delete
Row Delta

CLI Usage

Run go build ./cmd/iceberg from the root of this repository to build the CLI executable, alternately you can run go install github.com/apache/iceberg-go/cmd/iceberg to install it to the bin directory of your GOPATH.

The iceberg CLI usage is very similar to pyiceberg CLI
You can pass the catalog URI with --uri argument.

Example: You can start the Iceberg REST API docker image which runs on default in port 8181

docker pull apache/iceberg-rest-fixture:latest
docker run -p 8181:8181 apache/iceberg-rest-fixture:latest

and run the iceberg CLI pointing to the REST API server.

 ./iceberg --uri http://0.0.0.0:8181 list
┌─────┐
| IDs |
| --- |
└─────┘

Create Namespace

./iceberg --uri http://0.0.0.0:8181 create namespace taxitrips

List Namespace

 ./iceberg --uri http://0.0.0.0:8181 list
┌───────────┐
| IDs       |
| --------- |
| taxitrips |
└───────────┘


Get in Touch