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

Import Export Laravel Package

liberusoftware/import-export

A Laravel package for importing and exporting data with configurable sources, formats, and field mappings. Define import/export workflows, handle validation and transformations, and move data between files and your application cleanly.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Verdict up front: this is a functionally well-scoped package aimed at a genuinely expensive problem (import/export pipelines are where admin tooling projects go to die), but it has zero external validation — 0 stars, 0 dependents, no downstream consumers to inherit bug fixes from. Treat it as source code you are evaluating to fork, not as a dependency you are adopting.

Architecture fit

  • The feature list maps almost 1:1 to requirements that typically appear in B2B admin surfaces: schema definition, column mapping, dry run, validation, queued execution, progress, error reports, authorization, retention. Most teams build 60–80% of this ad hoc, repeatedly, per entity. If the package delivers even the schema + dry run + error report triad cleanly, it removes a multi-sprint build.
  • The module-import-export naming and liberusoftware namespace strongly suggest it is one module in an opinionated suite (Laravel Modules-style: service provider, published config, own migrations, possibly its own UI/transport layer). That is the primary architectural risk: it may assume a host application shaped like the author's, not yours.
  • Import/export is inherently cross-cutting — it must reach into your Eloquent models, authorization policies, queue connection, filesystem disks, and notification channel. Every one of those is an integration seam and a potential impedance mismatch.

Integration feasibility

  • MIT license and Composer distribution means the mechanical install is trivial; the real question is whether it is headless (a service layer you drive) or opinionated (routes + views + Livewire/Filament components you inherit). Headless is far easier to justify; opinionated UI is a hard no unless your stack matches.
  • No migrations or config published = frictionless. Migrations touching your tables or a required import_export_* table set = a schema commitment you now own forever.
  • The advertised authorization and retention features are the interesting differentiators and also the ones most likely to encode someone else's compliance model. Retention means scheduled cleanup jobs writing to your storage and DB — verify they are opt-in and configurable, not default-on.

Technical risk

  • Bus factor 1. No stars, no dependents, no ecosystem. There is no version of this where you get community CVE turnaround or free regression coverage.
  • Security surface is non-trivial. File upload + parsing + queued execution + downloadable error reports is a classic attack chain: CSV formula injection on export, zip/decompression bombs, XML external entity handling if xlsx via PhpSpreadsheet, path traversal via user-supplied filenames, and unbounded memory on large sheets. None of this is disqualifying — but it means you must do the security review yourself, and price that in.
  • Unvalidated release history. One release date and no dependents is not evidence of stability. Check commit cadence, test presence, CI, and whether 1.0 has ever been cut.
  • Mitigating factor: MIT + narrow scope means the worst case is "we vendor the parts we like and own them." Confirm the codebase is small enough to read in an afternoon before committing.
  • The opportunity score (~45) is a signal, not a verdict: real problem, unproven execution.

Key questions to resolve before any code is written

  1. What are the exact php and illuminate/* version constraints, and is Laravel 11/12 supported?
  2. Is it headless or does it ship routes/views/UI? Which frontend stack, if any?
  3. Does it publish migrations? Does it require tables in the host DB, and are they tenant-scoped?
  4. Which file formats are supported, and what parser backs them (PhpSpreadsheet? league/csv?)?
  5. What is the atomicity model on import failure — all-or-nothing, or row-level partial commit with a reconciliation report?
  6. How is idempotency handled on queue retry? Can a retried job double-insert?
  7. Which authorization primitives — Gate/Policy integration, or a bespoke permission model?
  8. What does "retention" actually delete, on what schedule, and is it opt-in?
  9. Test coverage and CI status; is there a tagged stable release?
  10. Is the author reachable, and would they accept a fork relationship / paid support?

Integration Approach

Stack fit

  • Requires a working queue (Redis + Horizon preferred; database queue acceptable for low volume), a configured filesystem disk for staging, and a scheduler for retention. If your app already runs Horizon and Laravel's scheduler, marginal infrastructure cost is near zero.
  • Authorization fit is the make-or-break: it must resolve through Laravel's Gate/Policy on your models rather than its own ACL, otherwise you get a second permission system to keep in sync with the first.
  • Best fit is a Laravel monolith with an internal admin panel and a small number of high-value import surfaces (customers, products, pricing, historical records). Poor fit for a multi-tenant API-first product where imports are a customer-facing feature with SLA expectations — that raises the bar on failure modes past what an unvetted 0-star module should carry.

Migration path

  • Greenfield is the clean case: no migration, just an evaluation spike.
  • If you already have ad-hoc import scripts or maatwebsite/excel usage, do not rip-and-replace. Introduce the package behind an internal interface (ImportDefinition, Exporter) that your domain code calls, with the package as one implementation. That gives you a swap-out path and caps the blast radius if you abandon it.
  • If the package is opinionated about UI, budget an adapter layer or accept its UI as-is for internal-only admin screens.

Compatibility

  • Verify PHP extension prerequisites (ext-zip, ext-mbstring, ext-xml, ext-gd if image handling sneaks in) against your container images.
  • Check the framework upgrade cadence: a package with one release and no dependents is unlikely to be patched promptly for the next Laravel major. Assume you will own framework-compatibility patches from the first major upgrade after adoption.

Sequencing

  1. Timeboxed spike (1–2 days): install in a scratch branch, read the full source, answer the ten questions, attempt one real import end to end.
  2. Security pass: file handling, parser configuration, export escaping, retention job behavior. Written findings, no exceptions.
  3. Pilot one low-risk surface: an internal-only, admin-gated import (e.g., internal reference data) with dry-run enforced and no delete/overwrite semantics. Instrument it.
  4. Shadow mode: run dry-run against production-shaped data for a few cycles; diff the package's validation output against your existing rules. Validation divergence is the most common silent failure here.
  5. Go live on that surface with retention and authz explicitly configured, error reports wired to support tooling.
  6. Expand surface by surface, with a standing decision point after the second one on whether to fork-and-own or continue tracking upstream.

Operational Impact

Maintenance

  • Assume fork ownership as the base case, not the contingency. Pin to a commit SHA, vendor into your monorepo or a private Satis repo, and budget a small recurring maintenance line (a few days per quarter plus a bump at each Laravel major).
  • Because there is no dependents graph, you will not get incidental bug discovery from other users. Your own pilot is the entire test suite for your use cases.

Support

  • No commercial support, no community, no StackOverflow corpus. Issue triage is whatever the author's goodwill provides. Write an internal runbook and designate an owner before the first production import, not after.
  • Upside: an unmaintained MIT package with a narrow scope is a bounded liability. The failure mode is "we own 2,000 lines," not "our platform is stranded."

Scaling

  • Watch per-row overhead: progress tracking and error reporting typically mean a cache or DB write per row. At 100k+ rows this dominates runtime and can hot-spot a single row/document. Verify batching behavior with a real file before committing to a max-import-size limit.
  • Memory is the usual ceiling. Confirm streaming/chunked reads rather than full-file load into memory, and set an enforced upload size cap in the application, not just the package.
  • Queue concurrency: large imports competing with transactional jobs on the same worker pool is a real production hazard. Give imports their own queue and a concurrency cap.
  • Multi-tenant deployments: confirm retention and error artifacts are tenant-scoped, or you will leak filenames and validation errors across tenants.

Failure modes to design for

  • Partial commit. If imports are not atomic, a mid-run timeout leaves half-applied data with no rollback path. Decide per-surface whether you need a staging table plus a swap, and whether the package supports it.
  • Double-insert on retry. Queued execution plus automatic queue retries is a duplicate-generation engine unless idempotency keys exist. Test this explicitly.
  • Validation drift. Package-side validation rules diverging from your model/FormRequest rules produces rows that pass the import and fail everywhere else — or vice versa. Treat the package's rules as authoritative or override them; do not run both.
  • Silent mapping errors. Column mapping mistakes are the highest-frequency real-world failure: data lands in the wrong field, validation passes, nobody notices for weeks. This is exactly what dry runs and error reports exist to prevent — make dry run mandatory in the UI and log mapping definitions per run.
  • Orphaned staging files. If retention cleanup fails silently, storage grows unbounded. Alert on the cleanup job, don't just schedule it.
  • Encoding and locale. Non-UTF-8 uploads and date/number formats are a perennial support-ticket source; verify explicitly with representative customer data.

Ramp-up

  • Team cost is low-moderate: Laravel developers will read the API quickly, but the concept load (schema definitions, mapping lifecycle, dry-run semantics) is real, and documentation quality is unknown. Budget half a day of internal knowledge transfer and write down your own integration notes — they are the only docs your team will trust in six months.
  • Recommend: one spike owner, one reviewer doing the security pass, and an explicit written decision record at the pilot's end covering adopt / fork / build. Given 0 stars and 0 dependents, the default disposition should be fork-and-own if the pilot passes, build-in-house if it doesn't — and either way, do not let it become a load-bearing dependency you have not read.
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.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle