Download the PHP package filipefernandes/laravel-duckdb without Composer
On this page you can find all versions of the php package filipefernandes/laravel-duckdb. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-duckdb
Laravel DuckDB Driver
A production-ready Laravel database driver for DuckDB, powered by satur/duckdb-auto. This package allows you to query DuckDB databases using Laravel's powerful Query Builder for analytical (OLAP) workloads.
Requirements
- PHP 8.2+
- Laravel 10.0+ or 11.0+
- FFI Extension Enabled (
ffi.enable=trueorpreloadinphp.ini)
[!WARNING] Production Notice: Enabling FFI globally (
ffi.enable=true) can have security implications. It is recommended to useffi.enable=preloadin production environments and preload the necessary scripts if possible, or strictly control access to the server.
Installation
-
Install via Composer:
- Configuration
Add the connection configuration to your config/database.php file:
Auto-Installer
This package automatically downloads and installs the DuckDB native binary and FFI header when your application boots — no manual setup required.
On first boot it will:
- Create
storage/duckdb/(if it doesn't exist) - Download the correct native library for your OS from the DuckDB GitHub Releases
- Download the
duckdb.hFFI header - Set the required environment variables (
DUCKDB_LIB_PATH,DUCKDB_HEADER_PATH) at runtime
Subsequent boots detect the files are already present and skip the download (idempotent).
Supported platforms
| OS | Architecture | Library |
|---|---|---|
| Windows | x86_64 | duckdb.dll |
| Linux | x86_64 | libduckdb.so |
| Linux | aarch64 | libduckdb.so |
| macOS | Universal | libduckdb.dylib |
Configuration
Publish the config file to override defaults:
Available .env variables:
[!NOTE]
ext-zipmust be enabled in yourphp.ini(it is bundled with PHP by default on most platforms). If the installer fails (e.g. no internet access), it logs the error and does not crash the application — allowing you to manage binaries manually.
Usage
You can use the DB facade to interact with DuckDB.
Querying Files
You can query files directly (Parquet, CSV, JSON) without pre-configuring tables using the file() helper:
Basic Queries
Analytical Queries (OLAP)
DuckDB shines at analytics. You can query Parquet, CSV, or JSON files directly.
php use Illuminate\Support\Facades\DB;
// 1. Get all users $users = DB::connection('duckdb')->table('users')->get();
// 2. Aggregate count $count = DB::connection('duckdb')->table('users')->count();
// 3. Conditional Fetch with Bindings $user = DB::connection('duckdb') ->table('users') ->where('id', 1) ->first();
// 4. Raw SQL Select $results = DB::connection('duckdb')->select("SELECT * FROM users WHERE email LIKE ?", ['%example.com']);
// 5. Analytical Query (DuckDB syntax) // e.g. Extract hour from timestamp $hourly = DB::connection('duckdb') ->select("SELECT date_part('hour', created_at) as hour, count(*) as count FROM users GROUP BY 1"); ini [ffi] ffi.enable=true bash composer install bash vendor/bin/phpunit
All versions of laravel-duckdb with dependencies
ext-zip Version *
illuminate/database Version ^10.0|^11.0|^12.0
illuminate/support Version ^10.0|^11.0|^12.0