---
title: "This Month in the DuckDB Ecosystem: July 2025"
canonical: "https://motherduck.com/blog/duckdb-ecosystem-newsletter-july-2025/"
related:
  - title: "DuckDB Ecosystem Newsletter : July 2026"
    url: "https://motherduck.com/blog/duckdb-ecosystem-newsletter-july-2026/"
  - title: "DuckDB breaks the lakehouse? ft. Daniel Beach | EXPLAIN ANALYZE | MotherDuck"
    url: "https://motherduck.com/explain-analyze/0003-duckdb-breaks-the-lakehouse/"
  - title: "What's New in DuckDB 1.5! | MotherDuck"
    url: "https://motherduck.com/videos/whats-new-duckdb-15/"
gated_asset:
  title: "DuckLake on MotherDuck"
  url: "https://motherduck.com/product/ducklake/"
---

# This Month in the DuckDB Ecosystem: July 2025

## Hey, friend 👋

<p>I hope you're doing well. I'm&nbsp;<a href="https://www.ssp.sh/">Simon</a>, and I am excited to share another monthly newsletter with highlights and the latest updates about DuckDB, delivered straight to your inbox.</p>
<p>In this July issue, I gathered 9 (+2 DuckLake) links highlighting updates and news from DuckDB's ecosystem. The highlight this time is the seamless Kafka integration with Tributary and YamlQL, which enables querying your YAML files with SQL, making it convenient for long declarative data stacks. Additionally, we explore Foursquare's SQLRooms framework for browser-based data applications and various integrations with PostgreSQL, AWS SageMaker, and other enterprise tools that continue to expand DuckDB's reach across the data ecosystem.</p>
<p><!-- notionvc: 85a2a616-c84e-4cbe-8896-690d9276a14f --></p>

<style type="text/css">
.newsheading {
  border: 0px;
}

.newsheading img {
  border: 0px;
  vertical-align: middle;
  margin-bottom: 16px;
}

.row {
  display: flex;
  flex-direction:column;   
  margin-bottom: 10px;
}

.rowreverse {
  flex-direction:column-reverse;
}

@media screen and (min-width: 600px) {
  .row {
    flex-direction: row;
  }
.columnTextLeft h3 {
  margin-left: 0px !important;
  margin-right: 20px !important;
}

.columnTextRight h3 {
  margin-left: 20px !important;
}

.columnTextLeft p {
  margin-left: 0px !important;
  margin-right: 20px !important;
}

.columnTextRight p {
  margin-left: 20px !important;
}  
}

.columnPic {
  flex: 30%;
}


.columnText {
  flex: 70%;
}

.columnText h3 {
  margin-top: 0px !important;
}


</style>

<table class="newsheading" style="margin-bottom: 5px;">
  <tr>
    <td class="mobileoff"><span><img src="https://22616816.fs1.hubspotusercontent-na1.net/hubfs/22616816/featured_member_graphic.png" width="64" height="64" /></span></td>
    <td><h2>Featured Community Member</h2></td>
  </tr>
</table>

<div class="row">
  <div class="columnPic"><img src="https://22616816.fs1.hubspotusercontent-na1.net/hubfs/22616816/1736993697340.jpeg"></img></div>
  <div class="columnText columnTextRight">
    <h3>Rusty Conover</h3>
    <p><p><a href="https://www.linkedin.com/in/rusty-conover/" rel="noopener"><span><strong>Rusty Conover</strong></span></a> is an experienced software executive and engineer with a deep background in distributed systems, databases, and real-time data processing. At DuckCon 2025, he presented <i>“<a href="https://www.youtube.com/watch?v=-AfgEiE2kaI&amp;list=PLzIMXBizEZjggaDzjPP542En2R5SV0WiZ&amp;index=2" rel="noopener">Airport for DuckDB: Letting DuckDB Take Apache Arrow Flights,</a>”</i> exploring how to connect DuckDB to Apache Arrow Flight for high-performance data transfer.</p>
<p>He also recently released <a href="https://duckdb.org/community_extensions/extensions/tributary.html" rel="noopener"><span><strong>Tributary</strong></span></a>, a DuckDB community extension built at <span><strong>Query.Farm</strong></span> that enables real-time SQL access to Kafka streams—making it possible to query Kafka topics directly in DuckDB without external pipelines.</p>
<p>Rusty is focused on practical solutions that simplify complex systems, and on building strong engineering teams that deliver meaningful tools for developers.</p></p>
  </div>
</div>

<table class="newsheading" style="margin-bottom: 5px;">
  <tr>
    <td class="mobileoff"><span><img src="https://22616816.fs1.hubspotusercontent-na1.net/hubfs/22616816/top_links_graphic.png" width="64" height="64" /></span></td>
    <td><h2>Top DuckDB Links this Month</h2></td>
  </tr>
</table>



### [YamlQL: Query your YAML files with SQL and Natural Language](https://github.com/AKSarav/YamlQL)

<p><strong>TL;DR:</strong> YamlQL is a new tool that transforms YAML files into queryable relational databases using DuckDB, allowing users to run SQL queries against complex YAML structures.</p>
<p>YamlQL converts YAML structures into relational schemas by flattening nested objects with underscore separators, transforming lists of objects into multi-row tables, and extracting nested lists into separate tables with appropriate JOIN capabilities. The tool features both a CLI and Python library interface, with commands for SQL querying (yamlql sql), schema discovery (yamlql discover), and natural language querying through various LLM providers, all without sending your data externally. Practically: Works well with complex configuration files such as Kubernetes manifests applications, where traditional tools like jq/yq fall short for relational queries.</p>


### [Kafka: Tributary DuckDB Extension](https://query.farm/duckdb_extension_tributary.html)

<p><strong>TL;DR:</strong> The Tributary DuckDB extension provides Apache Kafka integration, enabling real-time data streaming and querying directly within DuckDB's SQL interface.</p>
<p>The <a href="https://github.com/Query-farm/tributary"><span>Tributary extension</span></a>, developed by Query.Farm, introduces native Kafka topic scanning capabilities through SQL functions like <span style="color: #188038;">tributary_scan_topic()</span>, which allows developers to <strong>consume messages from Kafka</strong> topics with minimal configuration. It supports a set of Kafka connection parameters and enables multi-threaded consumption of topics across partitions. It acts as a "bridge between the stream of data and the data lake".</p>
<p><!-- notionvc: ddeef9a5-cf17-4a08-b92e-ac86ea7a86dd --></p>


### [Foursquare Introduces SQLRooms](https://medium.com/@foursquare/foursquare-introduces-sqlrooms-b6397d53546c)

<p><strong>TL;DR:</strong> Foursquare has released SQLRooms, an open-source React framework for building single-node data applications powered by DuckDB, which run entirely in browsers or on laptops without requiring backend infrastructure.</p>
<p>SQLRooms combines five core components: RoomShell (UI container), RoomStore (state management), an embedded DuckDB instance, an AI-powered analytics assistant, and a reusable component library.</p>
<p>The framework automatically handles DuckDB operations, including format recognition (CSV, Parquet, JSON, Arrow), schema inference, and table registration for immediate querying. It leverages recent advances in browser capabilities (PWAs, WebAssembly, OPFS) and local AI deployment, enabling data applications that process multi-gigabyte datasets in sub-seconds while maintaining data privacy. Find its <a href="https://github.com/sqlrooms/sqlrooms">code</a> and <a href="https://sqlrooms.org/">dedicated website</a>.</p>


### [Quacks & Stacks: DuckLake's One‑Table Wonder vs Iceberg's Manifest Maze](https://medium.com/@tfmv/quacks-stacks-5565069a5ef0)

<p><strong>TL;DR:</strong> DuckLake introduces a simplified metadata management approach for data lakes by centralizing metadata tracking in SQL tables, contrasting with Apache Iceberg's distributed file-based approach.</p>
<p><span style="color: #000000;">Thomas demonstrates how DuckLake reimagines table metadata management by storing all tracking information directly in SQL tables, utilizing functions such as </span><span style="color: #188038;">ducklake_snapshots()</span><span style="color: #000000;"> and </span><span style="color: #188038;">ducklake_table_info()</span><span style="color: #000000;"> to provide transparent metadata access. Unlike Iceberg's complex manifest hierarchy (involving JSON → manifest lists → manifests → data files), DuckLake uses a </span><strong><span style="color: #000000;">single-transaction model</span></strong><span style="color: #000000;"> for updates: </span><span style="color: #188038;">UPDATE lake.sales_data SET amount = amount * 1.15 WHERE region = 'North'</span><span style="color: #000000;">.</span></p>
<p><span style="color: #000000;">More about DuckLake:&nbsp;</span></p>
<p><span style="color: #000000;">📺 </span><a href="https://www.youtube.com/watch?v=hrTjvvwhHEQ"><span>Understanding DuckLake: A Table Format with a Modern Architecture</span></a><span style="color: #000000;">&nbsp;</span></p>
<p><span style="color: #000000;">📰 </span><a href="https://motherduck.com/blog/announcing-ducklake-support-motherduck-preview/"><span>MotherDuck Managed DuckLakes Now in Preview: Scale to Petabytes</span></a><span style="color: #000000;">&nbsp;</span></p>
<p>📝 <a href="https://rmoff.net/2025/06/02/digging-into-ducklake/">Digging into Ducklake</a></p>
<p><!-- notionvc: 5f4f2df2-c493-4498-ba37-d228e2d9740c --></p>


### [DuckDB Wizard: A DuckDB extension that executes JS and returns a table](https://github.com/nicosuave/wizard)

<p><strong>TL;DR:</strong> Nico's Wizard extension for DuckDB enables natural language queries and direct JavaScript execution within SQL via an embedded V8 interpreter.</p>
<p>The Wizard extension leverages LLMs (OpenAI/Anthropic) to translate natural language into JavaScript code that executes in a sandboxed Deno environment, returning results as DuckDB tables. Users can either use the wizard() function for natural language queries like <code>SELECT * FROM wizard('bitcoin price')</code> or execute arbitrary JavaScript directly with js(). Nico emphasizes that this is highly experimental and not for production use. If you need production-ready, check out MotherDucks’s <a href="https://motherduck.com/docs/sql-reference/motherduck-sql-reference/ai-functions/prompt/">PROMPT()</a> function.<br><span style="font-size: 11px; color: #000000;"></span></p>


### [How to Enable DuckDB/Smallpond to Use High-Performance DeepSeek 3FS](https://blog.open3fs.com/2025/05/16/duckdb-and-smallpond-use-high-performance-deepseek-3fs.html)

<p><strong>TL;DR:</strong> The Open3FS community has developed a DuckDB-3FS plugin enabling DuckDB and Smallpond to access DeepSeek's 3FS storage using its high-performance user-space interface (hf3fs_usrbio).</p>
<p>The plugin supports two path formats ( 3fs://3fs/path and /3fs/path) and requires minimal configuration. DeepSeek reported that with 3FS and Smallpond, 50 compute nodes sorted 110.5 TiB of data in just over 30 minutes (3.66 TiB/minute throughput). The implementation is available in two open-source repositories: <a href="https://github.com/open3fs/duckdb-3fs">duckdb-3fs</a> and <a href="https://github.com/open3fs/smallpond-3fs">smallpond-3fs</a>, allowing the DuckDB ecosystem to leverage 3FS storage performance fully.<br><span style="font-size: 11px; color: #000000;"></span></p>


### [Using Amazon SageMaker Lakehouse with DuckDB](https://tobilg.com/using-amazon-sagemaker-lakehouse-with-duckdb)

<p><strong>TL;DR:</strong> Tobias demonstrates how to integrate Amazon SageMaker Lakehouse with DuckDB using AWS Glue Iceberg REST endpoints to query S3 Tables.</p>
<p>In this technical walkthrough, we learn how to connect DuckDB to AWS SageMaker Lakehouse, starting with the necessary IAM setup. Once the AWS infrastructure is configured, the DuckDB integration is straightforward, requiring only two key commands: <span style="color: #188038;">CREATE SECRET</span> with STS assume role configuration and <span style="color: #188038;">ATTACH</span> with ICEBERG type and GLUE endpoint parameters. After this setup, users can run standard SQL queries directly against the data lake. The resulting DuckDB integration provides a lightweight, SQL-based access layer to data stored in S3 Tables.</p>
<p><!-- notionvc: 3c44cb56-0f8c-4bad-9adb-6a62db142965 --></p>
<p><!-- notionvc: 2876798e-5b8d-4be0-8a13-4eb35c9a9cbb --></p>


### [PostgreSQL and Ducks: The Perfect Analytical Pairing](https://motherduck.com/blog/postgres-duckdb-options/)

<p><strong>TL;DR:</strong> This article explores three methods for integrating PostgreSQL with DuckDB/MotherDuck for analytical workloads: DuckDB Postgres Extension, pg_duckdb, and Supabase's ETL (CDC).</p>
<p>The DuckDB Postgres Extension offers the most straightforward approach, requiring minimal setup with commands like <code>INSTALL postgres; LOAD postgres; ATTACH 'dbname=postgres user=postgres host=127.0.0.1' AS db (TYPE postgres, READ_ONLY);</code> to query PostgreSQL data remotely. The pg_duckdb extension embeds DuckDB directly within PostgreSQL, delivering impressive performance gains (up to 1,500x speedup on one TPC-DS query, according to Jacob and Aditya), but requires careful resource management, ideally on a dedicated read replica. And finally, Supabase's ETL provides near real-time data synchronization through PostgreSQL's logical decoding capabilities.</p>
<p><!-- notionvc: 9c8a728a-d236-408d-bb72-c989812cc3a7 --></p>
<p><!-- notionvc: 2ddd1c59-8374-4010-9c8c-c3e69d8fe116 --></p>


### [Announcing DuckDB 1.3.0](https://duckdb.org/2025/05/21/announcing-duckdb-130.html)

<p><strong>TL;DR:</strong> DuckDB 1.3.0 "Ossivalis" introduces a file cache for remote data, a new spatial join operator, and improved Parquet handling alongside several breaking changes.</p>
<p>Besides the major DuckLake announcement, we also got the latest release 1.3.0 (and bug-fixes <a href="https://github.com/duckdb/duckdb/releases/tag/v1.3.1"><span>1.3.1</span></a>). The 1.3 release introduces performance improvements through an <a href="https://github.com/duckdb/duckdb/pull/16463"><span>external file cache</span></a> that dynamically stores data from remote files, resulting in reduced query times on subsequent runs (e.g., S3 queries experience a 4x speedup).</p>
<p>New features include Python-style lambda syntax (<code>lambda x: x + 1</code>), the TRY expression for error handling <code>(TRY(log(0))</code> returns NULL instead of erroring), UUID v7 support, and <strong>a specialized spatial join operator </strong>that's up to 100x faster than previous implementations. Internal improvements include a complete rewrite of the Parquet reader/writer and a new string compression method (DICT_FSST).</p>
<p><!-- notionvc: 236c3406-585e-4ccb-b63f-9dc12bef245a --></p>



<table class="newsheading" style="margin-bottom: 5px;">
  <tr>
    <td class="mobileoff"><span><img src="https://22616816.fs1.hubspotusercontent-na1.net/hubfs/22616816/upcoming_events_graphic.png" width="64" height="64" /></span></td>
    <td><h2>Upcoming Events</h2></td>
  </tr>
</table>



### [Small Data SF: Workshop Day!](https://www.smalldatasf.com/)

**San Francisco, CA, USA - 12:00 PM America, Los Angeles - In Person**

Make your big data feel small, and your small data feel valuable. Join leading data and AI innovators on November 4th and 5th in San Francisco!


### [Small Data SF: Keynotes and Sessions](https://www.smalldatasf.com/)

**San Francisco, CA, USA - 8:30 AM America, Los Angeles - In Person**

<p>Make your big data feel small, and your small data feel valuable. Join leading data and AI innovators on November 4th and 5th in San Francisco!</p>

