DuckDB é um sistema de gerenciamento de banco de dados SQL OLAP em processo.
DuckDB-Wasm traz DuckDB para todos os navegadores graças ao WebAssembly.
Duckdb-Wasm fala Arrow fluentemente, lê arquivos Parquet, CSV e JSON apoiados por APIs de sistema de arquivos ou solicitações HTTP e foi testado com Chrome, Firefox, Safari e Node.js. Saiba mais sobre DuckDB-Wasm em nossa publicação VLDB ou na palestra gravada.
Experimente em shell.duckdb.org ou incorporação externa de terceiros do DuckDB-Wasm, leia a documentação da API, confira os exemplos de aplicativos da web e converse conosco no Discord.
DuckDB-Wasm é atualmente baseado em DuckDB v1.1.1.
Diferenças relevantes:
INSTALL extension_name FROM 'https://repository.endpoint.org';
adiar a busca da extensão para o primeiro LOAD extension_name;
instrução. INSTALL x FROM community;
taquigrafias também são suportadas.LOAD icu;
pode ser necessário para reproduzir o mesmo comportamento.Recursos suportados do DuckDB:
ATTACH 'https://blobs.duckdb.org/data/test.db'; FROM db.t;
demonstraçãoLOAD spatial
DuckDB é extensível e permite delegar funcionalidades a extensões.
As extensões principais estão disponíveis em https://extensions.duckdb.org, e as extensões da comunidade estão disponíveis em https://community-extensions.duckdb.org.
-- - Excplicitly load extensions
LOAD icu;
-- - Or have them autoloaded when using relevant functions or settings
DESCRIBE FROM read_parquet( ' https://blobs.duckdb.org/stations.parquet ' ); -- (this autoloads JSON)
-- - Or register extensions
INSTALL h3 FROM community;
INSTALL sqlite_scanner FROM ' https://extensions.duckdb.org ' ;
INSTALL quack FROM ' https://community-extensions.duckdb.org ' ;
-- - And then load them
LOAD h3;
LOAD sqlite_scanner;
LOAD quack;
FROM duckdb_extensions() WHERE loaded;
Mostrará que h3, icu, parquet, quack e sqlite_scanner foram carregados.
Você pode experimentar a demonstração do Shell com carregamento de extensões, mas isso exige que cerca de 3,2 MB de arquivos Wasm compactados sejam transferidos pela rede (na primeira visita, o cache pode ajudar).
Os tamanhos das extensões variam dependendo, entre outras coisas, da funcionalidade fornecida ou do conjunto de ferramentas usado.
git clone https://github.com/duckdb/duckdb-wasm.git
cd duckdb-wasm
git submodule init
git submodule update
make apply_patches
make serve
Subprojeto | Descrição | Linguagem |
---|---|---|
patodb_wasm | Biblioteca Wasm | C++ |
@duckdb/duckdb-wasm | API de texto digitado | Texto datilografado |
@duckdb/duckdb-wasm-shell | Concha SQL | Ferrugem |
@duckdb/duckdb-wasm-app | Página GitHub | Texto datilografado |
@duckdb/react-duckdb | Ganchos de reação | Texto datilografado |