Extensions
Platforms
Extension binaries must be built for each platform. Pre-built binaries are distributed for several platforms (see below).
For platforms where packages for certain extensions are not available, users can build them from source and [install the resulting binaries manually](#::installing-an-extension-from-an-explicit-path).  
All official extensions are distributed for the following platforms.  
<div class="narrow_table"></div>  
| Platform name      | Operating system | Architecture    | CPU types                       | Used by                      |
|--------------------|------------------|-----------------|---------------------------------|------------------------------|
| `linux_amd64`      | Linux            | x86_64  (AMD64) |                                 | Node.js packages, etc.       |
| `linux_amd64_gcc4` | Linux            | x86_64  (AMD64) |                                 | Python packages, CLI, etc.   |
| `linux_arm64`      | Linux            | AArch64 (ARM64) | AWS Graviton, Snapdragon, etc.  | all packages                 |
| `osx_amd64`        | macOS            | x86_64  (AMD64) | Intel                           | all packages                 |
| `osx_arm64`        | macOS            | AArch64 (ARM64) | Apple Silicon M1, M2, etc.      | all packages                 |
| `windows_amd64`    | Windows          | x86_64  (AMD64) | Intel, AMD, etc.                | all packages                 |  
> For some Linux ARM distributions (e.g., Python), two different binaries are distributed. These target either the `linux_arm64` or `linux_arm64_gcc4` platforms. Note that extension binaries are distributed for the first, but not the second. Effectively that means that on these platforms your glibc version needs to be 2.28 or higher to use the distributed extension binaries.  
Some extensions are distributed for the following platforms:  
* `windows_amd64_mingw`
* `wasm_eh` and `wasm_mvp` (see [DuckDB-Wasm's extensions](#docs:api:wasm:extensions))  
For platforms outside the ones listed above, we do not officially distribute extensions (e.g., `linux_arm64_android`, `linux_arm64_gcc4`).  
#### Sharing Extensions between Clients {#docs:extensions:working_with_extensions::sharing-extensions-between-clients}  
The shared installation location allows extensions to be shared between the client APIs _of the same DuckDB version_, as long as they share the same `platform` or ABI. For example, if an extension is installed with version 0.10.0 of the CLI client on macOS, it is available from the Python, R, etc. client libraries provided that they have access to the user's home directory and use DuckDB version 0.10.0.