MCPcopy Index your code
hub / github.com/Embucket/embucket-labs

github.com/Embucket/embucket-labs @v0.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.2.0 ↗ · + Follow
4,222 symbols 10,923 edges 877 files 318 documented · 8%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Embucket

Run Snowflake SQL dialect on your data lake in 30 seconds. Zero dependencies.

License SQL Logic Test Coverage dbt Gitlab run results

Quick start

Start Embucket and run your first query in 30 seconds:

docker run --name embucket --rm -p 8080:8080 -p 3000:3000 embucket/embucket

Open localhost:8080—login: embucket/embucket—and run:

CREATE TABLE sales (id INT, product STRING, revenue DECIMAL(10,2));
INSERT INTO sales VALUES (1, 'Widget A', 1250.00), (2, 'Widget B', 899.50);
SELECT product, revenue FROM sales WHERE revenue > 1000;

Done. You just ran Snowflake SQL dialect on Apache Iceberg tables with zero configuration.

What just happened?

Embucket provides a single binary that gives you a wire-compatible Snowflake replacement:

  • Snowflake SQL dialect and API: Use your existing queries, dbt projects, and BI tools
  • Apache Iceberg storage: Your data stays in open formats on object storage
  • Zero dependencies: No databases, no clusters, no configuration files
  • Query-per-node: Each instance handles complete queries independently

Perfect for teams who want Snowflake's simplicity with bring-your-own-cloud control.

Architecture

Embucket Architecture

Zero-disk lakehouse: an architectural approach where all data and metadata live in object storage rather than on compute nodes. Nodes stay stateless and replaceable.

Built on proven open source: - Apache DataFusion for SQL execution - Apache Iceberg for ACID transactions
- SlateDB for metadata management

Why Embucket?

Escape the dilemma: choose between cloud provider lakehouses (Redshift, BigQuery) or operational complexity (do-it-yourself lakehouse).

  • Radical simplicity - Single binary deployment
  • Snowflake SQL dialect compatibility - Works with your existing tools
  • Open data - Apache Iceberg format, no lock-in
  • Horizontal scaling - Add nodes for more throughput
  • Zero operations - No external dependencies to manage

Next steps

Ready for more? Check out the comprehensive documentation:

Quick start - Detailed setup and first queries
Architecture - How the zero-disk lakehouse works
Configuration - Production deployment options
dbt Integration - Run existing dbt projects

From source:

git clone https://github.com/Embucket/embucket.git
cd embucket && cargo build
./target/debug/embucketd

Contributing

Contributions welcome. To get involved:

  1. Fork the repository on GitHub
  2. Create a new branch for your feature or bug fix
  3. Submit a pull request with a detailed description

For more details, see CONTRIBUTING.md.

License

This project uses the Apache 2.0 License. See LICENSE for details.

Extension points exported contracts — how you extend this code

Generator (Interface)
A trait for types that can generate instances of `T`. Implement this trait to define how to generate test data of a spe [5 …
crates/embucket-seed/src/seed_generator/generator.rs
IntoStatusCode (Interface)
(no doc) [11 implementers]
crates/api-ui/src/error.rs
IterableEntity (Interface)
(no doc) [5 implementers]
crates/core-utils/src/iterable.rs
TestQueryCallback (Interface)
(no doc) [4 implementers]
crates/core-executor/src/tests/e2e/e2e_common.rs
StringBuildLike (Interface)
A common trait to abstract over different string builders [2 implementers]
crates/embucket-functions/src/lib.rs
DefaultCompletionConfig (Interface)
* The configs of Codemirror Autocomplete
ui/src/modules/sql-editor/sql-editor-extensions/sql-editor-autocomplete/sql-auto-completion-types.ts
StackError (Interface)
(no doc) [2 implementers]
crates/error-stack/src/error.rs
HistoryStore (Interface)
(no doc) [1 implementers]
crates/core-history/src/history_store.rs

Core symbols most depended-on inside this repo

collect
called by 568
crates/core-utils/src/scan_iterator.rs
with_docs
called by 503
crates/embucket-functions/src/visitors/unimplemented/mod.rs
len
called by 449
crates/embucket-functions/src/lib.rs
fail
called by 387
test/slt_runner/result.py
get
called by 225
crates/core-utils/src/lib.rs
value
called by 223
crates/embucket-functions/src/lib.rs
is_null
called by 176
crates/embucket-functions/src/lib.rs
build
called by 171
crates/core-executor/src/dedicated_executor.rs

Shape

Method 1,986
Function 1,498
Class 470
Interface 172
Enum 94
Route 2

Languages

Rust75%
TypeScript14%
Python10%

Modules by API surface

crates/core-executor/src/dedicated_executor.rs91 symbols
test/slt_runner/result.py84 symbols
crates/core-executor/src/query.rs75 symbols
crates/core-metastore/src/metastore.rs53 symbols
crates/embucket-functions/src/json.rs50 symbols
test/slt_runner/parser/parser.py45 symbols
test/integration/conftest.py45 symbols
crates/embucket-functions/src/conversion/to_timestamp.rs42 symbols
crates/core-utils/src/lib.rs35 symbols
crates/core-executor/src/utils.rs34 symbols
crates/core-executor/src/tests/e2e/tests_e2e.rs32 symbols
crates/embucket-functions/src/aggregate/object_agg.rs31 symbols

For agents

$ claude mcp add embucket-labs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact