Snowflake Emulator
Local Snowflake Development with Go and DuckDB
Details
- External ID
- 46471246
- Source
- HN
- Company
- —
- Product
- Snowflake Emulator
- Website domain
- github.com
- Launched
- Jan. 3, 2026
- Cohort
- —
- Upvotes
- 6
- Upvotes percentile
- 0.2549407114624506
- Tags
- —
- Fetched at
- Sept. 7, 2026, 9:25 p.m.
- Updated at
- Sept. 7, 2026, 9:25 p.m.
Description
Hi HN! I built a Snowflake emulator for local development and testing.Testing Snowflake code locally is frustrating – you need a real account (expensive) or mock everything (tedious). I wanted something that just works with the standard [gosnowflake](https://github.com/snowflakedb/gosnowflake) driver or REST API.snowflake-emulator fixes this by:- Using DuckDB as the storage engine - Auto-translating Snowflake SQL (IFF→IF, NVL→COALESCE, DATEADD, etc.) - Supporting gosnowflake driver protocol – no code changes needed - Providing REST API v2 – use from any language (Python, Node.js, etc.)```go dsn := "user:pass@localhost:8080/TEST_DB/PUBLIC?account=test&protocol=http" db, _ := sql.Open("snowflake", dsn) db.Query(`SELECT IFF(score >= 90, 'A', 'B') FROM users`) ``````bash docker run -p 8080:8080 ghcr.io/nnnkkk7/snowflake-emulator:latest ```GitHub: https://github.com/nnnkkk7/snowflake-emulatorWould love feedback – especially on SQL functions you'd want supported!
Enrichment
- Theme
- database infrastructure and developer tools
- Vertical
- —
- Function
- Data infrastructure
- Audience
- Developer
- AI stance
- Not AI
- Project type
- Hobby / open-source project
- Normalized one-liner
- local snowflake development emulator
- Manually corrected
- False
Could you build this?
Partial While wrapping DuckDB behind a Go server wire protocol is straightforward, emulating Snowflake-specific SQL dialect quirks and proprietary features accurately requires significant low-level engine translation.
What it would actually take: The architecture involves a Go HTTP/JSON server that implements the Snowflake wire protocol and translates queries into DuckDB SQL via AST rewriting. The hardest piece is handling Snowflake-specific SQL functions, session parameters, and procedural logic (e.g., Snowflake Scripting) that DuckDB does not natively support, demanding deep database internal knowledge.
Discussion
4 comments analyzed.
Competitors mentioned: LocalStack
Concerns raised: FLATTEN translation to DuckDB UNNEST incomplete, missing Snowflake output columns, Queries work locally but break in subtle ways on deployment, Named parameter syntax not supported
Feature requests: Complete FLATTEN implementation with full Snowflake output columns (SEQ, KEY, PATH, INDEX, VALUE, THIS), Support named parameter syntax for FLATTEN
Competitors
Other products that read as similar to this one — 66 launches clear the similarity bar, closest 8 shown.
Attention rank: #57 of 67 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).
Launched 66 days after the earliest competitor.
- Connect DuckDB to any database that has an ADBC driver · hn · 2026-07-08 · 7 upvotes · similarity 0.55
- Ducktape · hn · 2025-12-16 · 12 upvotes · similarity 0.49
- duckdb-rust-workers · github · 2026-09-29 · 11 upvotes · similarity 0.44
- TablePro · ph · 2026-09-13 · 17 upvotes · similarity 0.42
- Dbxlite · hn · 2025-12-12 · 5 upvotes · similarity 0.42
- Ducklang: Achieving 100x more requests per second than NextJS · hn · 2026-01-01 · 9 upvotes · similarity 0.41
- Jevflake · github · 2026-09-20 · 10 upvotes · similarity 0.41
- GEDB · hn · 2026-02-16 · 9 upvotes · similarity 0.41
Other launches for this product
- No other launches for this product.