NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #3713 most downloaded on Packagist
Non-blocking access to the filesystem based on Amp and Revolt.
Last release 5 months ago
09 May 2026
Release timing varies
gaps range from 1 weeks to 1.3 years
Some releases are documented
notes for 8 of 30 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
37 releases · first in 2015
Users of 3.x should be able to update to 4.x without code changes unless their application did one of the following:
Users of 3.x should be able to update to 4.x without code changes unless their application did one of the following:
File implementationParallelFilesystemDriver with a custom worker count.This release adds a lock(), tryLock(), and unlock() to the File interface. These methods provide a non-blocking means of locking and unlocking a file.
File::lock(): Non-blocking method to obtain a shared or exclusive lock on the file. This method must only return once the lock has been obtained.File::tryLock(): Makes a single non-blocking attempt to obtain a shared or exclusive lock on the file. Returns true if the lock was obtained, otherwise false.File::unlock(): Unlocks the file if the lock is currently held.In 3.x, the constructor of ParallelFilesystemDriver accepted an optional WorkerPool and a number of workers to use from that pool. In 4.x, instead the constructor now requires only an optional LimitedWorkerPool (a new pool is created if one is not provided). The number of workers used for opening files is determined by the value returned from LimitedWorkerPool::getWorkerLimit(). Use a DelegateWorkerPool if you wish to use an existing pool and limit the number of workers used from the pool to open files. In general, it is not necessary to customize the parallel filesystem driver.
Full Changelog: v3.2.0...v4.0.0-beta.1
One column per quarter.
4.0.0 Latest
Latest
Compare
Nothing published for this version
The $workerLimit parameter to the constructor of ParallelFilesystemDriver is now deprecated. Pass an instance of LimitedWorkerPool instead.
$workerLimit parameter to the constructor of ParallelFilesystemDriver is now deprecated. Pass an instance of LimitedWorkerPool instead.Full Changelog: v3.1.1...v3.2.0
Dropped support for ext-uv < 0.3.0.
Full Changelog: v3.1.0...v3.1.1
Made implicit nullable types explicit to avoid deprecation notice in PHP 8.4
Fixed detecting if a file is writing from the file mode when r+ (or similar) is used as the mode.
r+ (or similar) is used as the mode. (#77)ParallelFilesystemDriver. (#81)Full Changelog: v3.0.1...v3.0.2
Fix touch() on non-existent files in ext-uv and ext-eio by @kelunik
touch() on non-existent files in ext-uv and ext-eio by @kelunik (#73)write() truncation with ext-uv and ext-eio by @danog in (#76)Full Changelog: v3.0.0...v3.0.1
Stable release compatible with AMPHP v3 and fibers! 🎉
Stable release compatible with AMPHP v3 and fibers! 🎉
As with other libraries compatible with AMPHP v3, most cases of parameters or returns of Promise<ResolutionType> have been replaced with ResolutionType.
BlockingDriver to BlockingFilesystemDriverEioDriver to EioFilesystemDriverParallelDriver to ParallelFilesystemDriverStatusCachingDriver to StatusCachingFilesystemDriverUvDriver to UvFilesystemDriverAmp\File\Sync\AsyncFileMutex to Amp\File\FileMutex?Cancellation as first parameter of File::read()File::isSeekable()File::SEEK_SET, File::SEEK_CUR, and File::SEEK_ENDAmp\File\Whence for seeking insteadv2.0 of amphp/byte-stream by updating File implementations to also implement Traversable.PendingOperationError being thrown after several seek-then-write operations in UvFile and EioFile.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Compare
Compare
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →