Files
scylladb/utils/CMakeLists.txt
copilot-swe-agent[bot] b818331420 Add ungzip function implementation with libdeflate
- Created utils/gzip.hh header with ungzip function declaration
- Created utils/gzip.cc implementation using libdeflate
- Updated utils/CMakeLists.txt to include gzip.cc and link libdeflate
- Created comprehensive test suite in test/boost/gzip_test.cc
- Added gzip_test to test/boost/CMakeLists.txt

The implementation:
- Uses libdeflate for high-performance gzip decompression
- Handles chunked_content input/output (vector of temporary_buffer)
- Supports concatenated gzip files
- Validates gzip headers and detects invalid/truncated/corrupted data
- Enforces size limits to prevent memory exhaustion
- Runs in async context to avoid blocking the reactor

Co-authored-by: nyh <584227+nyh@users.noreply.github.com>
2025-11-19 11:46:29 +00:00

90 lines
2.1 KiB
CMake

find_package(cryptopp REQUIRED)
find_package(rapidxml REQUIRED)
find_package(GnuTLS 3.3.26 REQUIRED)
add_library(utils STATIC)
target_sources(utils
PRIVATE
UUID_gen.cc
alien_worker.cc
array-search.cc
ascii.cc
base64.cc
big_decimal.cc
bloom_calculations.cc
bloom_filter.cc
buffer_input_stream.cc
build_id.cc
config_file.cc
directories.cc
disk-error-handler.cc
disk_space_monitor.cc
dynamic_bitset.cc
error_injection.cc
exceptions.cc
file_lock.cc
gzip.cc
gz/crc_combine.cc
gz/crc_combine_table.cc
hashers.cc
histogram_metrics_helper.cc
http.cc
human_readable.cc
i_filter.cc
io-wrappers.cc
large_bitset.cc
like_matcher.cc
limiting_data_source.cc
lister.cc
logalloc.cc
managed_bytes.cc
multiprecision_int.cc
murmur_hash.cc
on_internal_error.cc
pretty_printers.cc
rate_limiter.cc
rjson.cc
runtime.cc
to_string.cc
updateable_value.cc
utf8.cc
uuid.cc
labels.cc
aws_sigv4.cc
rest/client.cc
s3/aws_error.cc
s3/client.cc
s3/default_aws_retry_strategy.cc
s3/credentials_providers/aws_credentials_provider.cc
s3/credentials_providers/environment_aws_credentials_provider.cc
s3/credentials_providers/instance_profile_credentials_provider.cc
s3/credentials_providers/sts_assume_role_credentials_provider.cc
s3/credentials_providers/aws_credentials_provider_chain.cc
s3/utils/manip_s3.cc
azure/identity/credentials.cc
azure/identity/service_principal_credentials.cc
azure/identity/managed_identity_credentials.cc
azure/identity/azure_cli_credentials.cc
azure/identity/default_credentials.cc
gcp/gcp_credentials.cc
gcp/object_storage.cc
)
target_include_directories(utils
PUBLIC
${CMAKE_SOURCE_DIR}
${RAPIDJSON_INCLUDE_DIRS})
target_link_libraries(utils
PUBLIC
Seastar::seastar
xxHash::xxhash
PRIVATE
Boost::regex
crypto
cryptopp::cryptopp
libdeflate::libdeflate
rapidxml::rapidxml
yaml-cpp::yaml-cpp
GnuTLS::gnutls)
check_headers(check-headers utils
GLOB_RECURSE ${CMAKE_CURRENT_SOURCE_DIR}/*.hh)