#pragma once #include #include #include #include #define CHUNK 16384u namespace utils::compression { namespace zlib { std::string compress(const std::string& data); std::string decompress(const std::string& data); std::vector compress(std::span input, std::size_t exp_output_size, double growth_rate = 2.0); std::vector decompress(std::span input, std::size_t exp_output_size, double growth_rate = 2.0); } namespace zip { class archive { public: void add(std::string filename, std::string data); bool write(const std::string& filename, const std::string& comment = {}); private: std::unordered_map files_; }; } };