* Add zlib and zstd to cmake
* Add zpq_stream to machinarium
--
zpq_stream is used for streaming compression/decompression of Postgres protocol
* Add zpq_stream-related functions to machinarium
* Add compression set/free/read/write logic to machinarium
* Add startup packet compression var to kiwi
* Add compression_ack backend message support for kiwi
* Add compression setup logic for main odyssey project
* apply fmt
* fix format #2
Co-authored-by: root <root@ubuntu-build-machine.ru-central1.internal>
This patch intend is to improve overall io performance, reduce
cpu and system usage.
Machinarium:
IO read/write logic is highly simplified and now based on conditions
instead of previously made internal readahead buffer and msg
queues. This allows to give user more control over io operations and
avoid doing undesired readahead copying.
Above that, TLS implementation reworked to use async logic instead of
separate BIO layer.
Direct pooling functions removed.
New objects machine_cond_t and machine_iov_t objects.
Odyssey:
Introduced readahead, io and relay objects.
Relay allows to connect two io handles for direct data retransmission
without double copying.
Removed configuration options no longer needed:
packet_read_size, packet_write_queue