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

Laravel Tus Upload Laravel Package

oneofftech/laravel-tus-upload

Add tus.io resumable uploads to Laravel. Provides an upload endpoint, upload lifecycle management, and events so large files can resume after network drops and integrate cleanly with your app's storage and authorization.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • OneOffTech/laravel-tus-upload is a Laravel package that adds resumable, chunked uploads via the tus protocol. It sits on top of the framework's routing, middleware, storage, and event systems, so it fits naturally into an existing Laravel app without introducing a separate service or sidecar.
  • For a TPM, the architectural value is narrow but real: teams that need large-file or unreliable-network uploads (media, documents, datasets) can avoid building resumable-upload logic themselves.
  • It is not a general file-management or media-processing solution. Scope it as an upload transport layer only.

Integration feasibility

  • Low-to-moderate effort for a Laravel-standard stack: Composer install, publish config, register routes/middleware, wire storage disk. No external broker or infrastructure dependency is implied by the package itself.
  • The release notes only confirm framework/runtime compatibility (Laravel 9, PHP 8.0+). Endpoint behavior, storage-driver support, and frontend client requirements must be validated in a spike before committing to a plan.

Technical risk

  • Breaking runtime change in v0.11.0: PHP ≤ 7.4 is dropped, so the package now requires PHP 8.0+. Any service still on PHP 7.4 cannot consume this release.
  • Pre-1.0 churn: versioning is 0.x, meaning minor releases may carry breaking changes (as this one does). Pin versions and treat upgrades as planned work, not routine composer update.
  • Single-maintainer / small-project risk: the release is driven by one contributor; bus factor and long-term maintenance should be assessed before production dependency.
  • Protocol surface risk: tus involves chunking, offsets, checksums, and resume semantics. Misconfiguration can produce silent corruption or duplicate uploads.

Key questions

  • Which of our apps are still on PHP 7.4, and do any of them need this package?
  • Do we need Laravel 9 specifically, or are we on 8.x/10.x? (Release notes only confirm up to Laravel 9.)
  • Does the package support the storage backends we use (local, S3-compatible, etc.)?
  • What is the client-side story — which tus JS client version is compatible?
  • What is the maintainer's release cadence and issue-response history?
  • Is there a documented upgrade guide from v0.10.x to v0.11.0 beyond the PHP/Laravel bumps?

Integration Approach

Stack fit

  • Best fit: Laravel 9 application on PHP 8.0–8.1, standard Composer + Artisan workflow, conventional storage disks.
  • If we are on Laravel 10+, this release does not explicitly claim support — verify before adoption.
  • Requires a tus-compatible client on the frontend; plan for that dependency in the UI workstream.

Migration path

  • From v0.10.1: upgrade requires (a) PHP 8.0+ on every environment including CI, (b) Laravel 9 alignment, (c) re-running config/migration publishing if the package ships them, (d) regression testing of upload endpoints.
  • No documented data migration is implied, but uploaded-file storage layout and any package-owned DB tables must be checked in the upgrade notes and changelog.
  • For new adoption: start greenfield in one bounded feature rather than retrofitting all upload paths at once.

Compatibility

  • PHP: 8.0+ (hard requirement from v0.11.0).
  • Laravel: 9 confirmed; earlier and later versions unconfirmed by this release.
  • Frontend: tus client compatibility to be verified.
  • Storage: verify against our chosen disk drivers before design lock.

Sequencing

  1. Confirm PHP 8.0+ and Laravel 9 baseline across target environments.
  2. Timeboxed technical spike: install, upload a multi-GB file, kill the connection mid-upload, confirm resume.
  3. Validate storage backend and client integration.
  4. Pin the version in composer.json and document the pin rationale.
  5. Pilot in one feature; measure failure/resume behavior.
  6. Roll out to remaining upload surfaces; add upgrade runbook.

Operational Impact

Maintenance

  • Low surface area if pinned: the package is a thin protocol layer. Main cost is periodic compatibility upgrades tied to Laravel/PHP bumps.
  • Because it is 0.x, budget for deliberate upgrade reviews rather than automated dependency updates.
  • Track upstream releases; this v0.11.0 is exactly the kind of change (runtime floor + framework support) that needs a scheduled review.

Support

  • Internal: one owner should hold the upload subsystem, including the client-side tus integration.
  • External: small open-source project; do not assume vendor SLA. Have a fallback plan (fork, or replace with a maintained tus server) if the project stalls.
  • Document configuration and failure behavior locally so support does not depend on upstream responsiveness.

Scaling

  • Resumable uploads shift load toward storage and request volume (many chunk requests per file). Ensure rate limiting, request sizing, and storage throughput are considered.
  • Large-file concurrency can stress PHP-FPM workers and reverse proxies; validate timeouts and body-size limits end to end.
  • Horizontal scaling is straightforward if upload state lives in shared storage rather than local disk — confirm this is how the package behaves.

Failure modes

  • Version floor break: deploying v0.11.0 to a PHP 7.4 host fails at install/runtime — guard CI and deploy pipelines.
  • Resume failures: offset mismatch or client/server disagreement produces stalled or corrupted uploads; needs explicit test coverage.
  • Proxy/timeout truncation: chunk requests dropped by gateways manifest as repeated retries; monitor retry rates.
  • Storage misconfiguration: uploads succeed at the protocol layer but files land in the wrong disk or are inaccessible.
  • Orphaned partial uploads: interrupted sessions can accumulate storage; confirm cleanup behavior.

Ramp-up

  • Low for a Laravel-fluent engineer: configuration, routes, and client wiring are the main learning items.
  • Moderate for the team as a whole: tus protocol semantics (offsets, resume, checksums) and client-side behavior require shared understanding.
  • Estimate: 1–2 days spike, ~1 sprint for a pilot feature including client integration and tests, plus a documented upgrade runbook for the PHP 8.0+ transition.
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.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox