Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Yaetl Laravel Package

fab2s/yaetl

YAETL is a fast, extensible ETL library for PHP. Build extract-transform-load pipelines with a fluent API, reusable extractors, transformers, and loaders, batching, and progress reporting—ideal for data imports, migrations, and sync jobs.

View on GitHub
Deep Wiki
Context7

Yet Another ETL in PHP

Frequently asked questions about Yaetl
Is YAETL a Laravel package or a standalone PHP library?
YAETL is a framework-agnostic PHP ETL library, not a Laravel package. It ships no service provider, config publish, facades, or framework events, so you integrate it by wrapping extractors, transformers, and loaders in your own Artisan commands and queued jobs. That keeps pipeline logic portable but means you own the Laravel glue.
How do I install YAETL in a Laravel application?
Install it with composer require fab2s/yaetl. Then implement small extractor, transformer, and loader classes and compose them into a fluent Extract, Transform, Load pipeline invoked from a command or job. There is no config file to publish and no service provider to register.
Which Laravel and PHP versions does YAETL support?
YAETL has no Laravel version constraints and is PSR-4 Composer-native, so it should work with Laravel 9, 10, 11 and any modern PHP runtime in principle. Verify it against the oldest PHP version in your support matrix and check its dependency constraints, such as fab2s/ens, for collisions with your upgrade path. Specific supported PHP versions are not guaranteed by the provided context.
Can I use YAETL to import CSV or API data into a Laravel database?
Yes, that is a core use case. You write an extractor that streams rows from CSV, a database, or an API, transformers that clean or map them, and a loader that writes through your Laravel database connection. Keep pipelines linear and row-oriented, and handle idempotent upserts yourself because the loader contract's upsert behavior must be verified.
How does YAETL handle batching and memory usage for large datasets?
YAETL is built around generator-based streaming and batching, with a design goal of constant memory for linear pipelines. Joins, in-memory enrichment, global sorting, or aggregation can silently break that promise, so measure memory at your real input sizes. The recommended approach is a one-week spike against production-shaped data before committing.
Does YAETL support checkpointing, retries, or resuming a failed pipeline?
YAETL provides no built-in checkpointing, resume, retries, or dead-letter handling. Generator-based streaming means an exception mid-stream aborts the run, so you must design idempotency keys, batch checkpoints, and recovery around it. Plan to build this glue explicitly rather than assuming the library provides it.
How do I run a YAETL pipeline inside an Artisan command or queued job?
There is no Laravel integration shipped, so you create a thin Artisan command or queued job that builds and runs the pipeline. Inject Laravel's DB connection or PDO into your loader, and add logging and metrics adapters yourself. Keep pipeline classes in a dedicated module such as app/DataPipelines to preserve portability.
Does YAETL support parallel or concurrent processing?
Any concurrency in YAETL is process-based PHP parallelism, not true in-process threads. Validate how it behaves under PHP-FPM and queue workers rather than assuming parallel execution works. For per-row external API calls at volume, the library is a weak fit.
Is YAETL actively maintained and safe for production use?
Adoption signal is weak, around 65 stars, with a small community and single-maintainer-style support risk. Check release history, issue responsiveness, and whether the latest release reflects sustained maintenance or a one-off. There is no commercial support or SLA, so budget for reading the source and owning edge cases.
What are alternatives to YAETL for ETL in Laravel?
The provided context does not name specific alternatives. Options include writing custom chunked Laravel jobs or adopting a dedicated ETL tool, but evaluate them against YAETL's streaming, batching, and fluent API. Run a spike and compare memory, throughput, and maintenance risk before switching.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console