58 lines
2.9 KiB
Markdown
58 lines
2.9 KiB
Markdown
## Extension served via URLs
|
|
|
|
When performing `INSTALL name`, if the file is not present locally or bundled via static linking, it will be downloaded from the network.
|
|
Extensions are served from URLs like: http://extensions.duckdb.org/v0.8.1/windows_arm64/name.duckdb_extension.gz
|
|
|
|
Unpacking this:
|
|
```
|
|
http://extensions.duckdb.org/ The extension registry URL (can have subfolders)
|
|
v0.8.1/ The version identifier
|
|
osx_arm64/ The platform this extension is compatible with
|
|
name The default name of a given extension
|
|
.duckdb_extension Fixed file identifier
|
|
.gz Extension served as gzipped file
|
|
```
|
|
|
|
Extension registry defaults to duckdb's one, but can be set via `SET custom_extension_repository="http://some.url.org/subfolder1/subfolder2/"`.
|
|
|
|
## Local extensions
|
|
|
|
`INSTALL name` will download, un-zip and save the extension locally at a path like `~/.duckdb/extensions/v0.8.1/osx_arm64/name.duckdb_extension`.
|
|
|
|
```
|
|
~/.duckdb/ The local configuration folder
|
|
extensions/ Fixed subfolder dedicated to extensions
|
|
v0.8.1/ The version identifier
|
|
osx_arm64/ The platform this extension is compatible with
|
|
name The default name of a given extension
|
|
.duckdb_extension Fixed file identifier
|
|
```
|
|
|
|
Configuration folder defaults to be placed in home directory, but can be overwritten via `SET home_directory='/some/folder'`.
|
|
|
|
## WebAssembly loadable extensions (in flux)
|
|
|
|
```
|
|
https://extensions.duckdb.org/ The extension registry URL (can have subfolders)
|
|
wasm/ wasm-subfolder, required
|
|
v1.27.0/ The DuckDB-Wasm version identifier
|
|
webassembly_eh/ The platform/feature-set this extension is compatible with
|
|
name The default name of a given extension
|
|
.duckdb_extension Fixed file identifier
|
|
```
|
|
|
|
DuckDB-Wasm extensions are are downloaded by the browsers WITHOUT appening .gz, since decompression status is agreed using headers such as `Accept-Encoding: *` and `Content-Encoding: br`.
|
|
|
|
### Version identifier
|
|
|
|
Either the git tag (`v0.8.0`, `v0.8.1`, ...) or the git hash of a given duckdb version.
|
|
It's chosen at compile time and baked in DuckDB. A given duckdb executable or library is tied to a single version identifier.
|
|
|
|
### Plaform
|
|
|
|
Fixed at compile time via platform detection and baked in DuckDB.
|
|
|
|
### Extension name
|
|
|
|
Extension names should start with a letter, use only ascii lower case letters, numbers, dots ('.') or underscores ('_'), and have reasonable length (< 64 characters).
|