- Bug fix: [EventLoop] null timeout in StreamSelectLoop causing 100% CPU usage (@clue)
- Bug fix: [Socket] Check read buffer for data before shutdown signal and end emit (@ArtyDev)
- Bug fix: [DNS] Fixed PSR-4 autoload path (@marcj/WyriHaximus)
- Bug fix: v0.3.4 changes merged for v0.4.1
- Bug fix: [Stream] Fixed 100% CPU spike from non-empty write buffer on closed stream
- Buf fix: [Socket] Reset socket to non-blocking after shutting down (PHP bug)
- Feature: Added ChildProcess to run async child processes within the event loop (@jmikola)
- Feature: [EventLoop] Added
EventLoopInterface::nextTick()
, implemented in all event loops (@jmalloc) - Feature: [EventLoop] Added
EventLoopInterface::futureTick()
, implemented in all event loops (@jmalloc) - Feature: [EventLoop] Added
ExtEventLoop
implementation using pecl/event (@jmalloc) - BC break: [HttpClient] Drop unused
Response::getBody()
- BC break: Bump minimum PHP version to PHP 5.4, remove 5.3 specific hacks
- BC break: Remove
$loop
argument fromHttpClient
:Client
,Request
,Response
- BC break: Update to React/Promise 2.0
- BC break: Update to Evenement 2.0
- BC break: [EventLoop] New method:
EventLoopInterface::nextTick()
- BC break: [EventLoop] New method:
EventLoopInterface::futureTick()
- Bug fix: [Dns] Properly resolve CNAME aliases
- Dependency: Autoloading and filesystem structure now PSR-4 instead of PSR-0
- Bug fix: [EventLoop] No error on removing non-existent streams (@clue)
- Bug fix: [EventLoop] Do not silently remove feof listeners in
LibEvLoop
- Bug fix: [Stream] Correctly detect closed connections
- Feature: [Dns] Support default port for IPv6 addresses (@clue)
- Bug fix: [Stream] Make sure CompositeStream is closed properly
- Feature: [Socket] Support binding to IPv6 addresses (@clue)
- Feature: [SocketClient] Support connecting to IPv6 addresses (@clue)
- Bug fix: [Stream] Allow any
ReadableStreamInterface
onBufferedSink::createPromise()
- Bug fix: [HttpClient] Correct requirement for socket-client
- BC break: [EventLoop] New timers API (@nrk)
- BC break: [EventLoop] Remove check on return value from stream callbacks (@nrk)
- BC break: [HttpClient] Socket connection handling moved to new SocketClient component
- Feature: [SocketClient] New SocketClient component extracted from HttpClient (@clue)
- Feature: [Stream] Factory method for BufferedSink
- Bug fix: [EventLoop] Fix libevent timers with PHP 5.3
- Bug fix: [EventLoop] Fix libevent timer cancellation (@nrk)
- Feature: [Cache] New cache component, used by DNS
- Bug fix: [Http] Emit end event when Response closes (@beaucollins)
- Bug fix: [EventLoop] Plug memory issue in libevent timers (@cameronjacobson)
- Bug fix: [EventLoop] Correctly pause LibEvLoop on stop()
- Feature: [Stream] Make BufferedSink trigger progress events on the promise (@jsor)
- Feature: [HttpClient] Use a promise-based API internally
- Bug fix: [HttpClient] Use DNS resolver correctly
- Feature: [Stream] Added ThroughStream, CompositeStream, ReadableStream and WritableStream
- Feature: [Stream] Added BufferedSink
- Feature: [Dns] Change to promise-based API (@jsor)
- Feature: LibEvLoop, integration of
php-libev
- Bug fix: Forward drain events from HTTP response (@cs278)
- Dependency: Updated guzzle deps to
3.0.*
- Major: Dropped Espresso as a core component now available as
react/espresso
only - Feature: DNS executor timeout handling (@arnaud-lb)
- Feature: DNS retry executor (@arnaud-lb)
- Feature: HTTP client (@arnaud-lb)
- Feature: Support HTTP 1.1 continue
- Bug fix: Check for EOF in
Buffer::write()
- Bug fix: Make
Espresso\Stack
work with invokables (such asEspresso\Application
) - Minor adjustments to DNS parser
- Feature: DNS resolver
- Bug fix: Testing and functional against PHP >= 5.3.3 and <= 5.3.8
- First tagged release