* Move (de)compression helpers to akka-stream #21395
* Move compression and decompression -related classes from
akka-http-experimental to akka-stream
* Add Compression helper object with functions to create
decompressing Flows
* Add a short cookbook entry
* =str move compression impl classes into their own directory (and change visibility)
* =str also expose gzip/deflate compression flows
* Fix formatting of plural ByteStrings in cookbook
* =str #21395 make compressor call Deflater.end in postStop to release resources
Also simplified the creation of the flow given a compressor.
* =str #21395 decompressors call Inflater.end in postStop to release resources
* =str #21395 smallish Scaladoc fixes
When application closes inboud using engine.closeInbound the engine can generate an alert message and put it into writer.outboundList. As a result the engine can have a new data packet in outbound and its isOutboundDone will be false. We have to ensure that it will be flushed to the network, that's why we have to update lastHandshakeStatus via the actual status of the engine. Otherwise the actor will transition to the flushingOutbound state but will never flush outbound, since engineNeedsWrap precondition will be false.
Generally speaking whenever we signal something to the SSLEngine, weshould also read getHandshakeStatus afterwards to understand what we need to do next. This was done everywhere but for this engine.closeInbound.
* Add comprehensive tests
* Add documentation
* Damn comma after rebase
* Add documentation for foldAsync and scanAsync
* Rename aggreator and aggreating to current
* Remove out availability check
* Revert removing out and some refactors
* Formatting documentation
* Use after instead of Promise in test
* Use package reference to after and some refactoring
* fail fast in mapAsync for completed failed future, #21318
* the callback was not run until todo == parallelism or the sync
event limit was reached, and that can be a problem if upstream
stages are slow (noticed this for a blocking Kafka producer stage)
* skip callback for completed futures
* fix callback allocation
added CSV examples
updated docs
EntityStreamingSupport is now an entry point, to all streaming things
both read and write side use it
it's easy to extend as well