## 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 downloaded by the browsers WITHOUT appending .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.

### Platform

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).
