omnizip 0.3.12 → 0.3.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.adoc +6 -0
- data/lib/omnizip/algorithm.rb +36 -3
- data/lib/omnizip/algorithm_registry.rb +0 -2
- data/lib/omnizip/algorithms/bzip2/bwt.rb +0 -2
- data/lib/omnizip/algorithms/bzip2/decoder.rb +0 -2
- data/lib/omnizip/algorithms/bzip2/encoder.rb +0 -2
- data/lib/omnizip/algorithms/bzip2/huffman.rb +0 -2
- data/lib/omnizip/algorithms/bzip2/mtf.rb +0 -2
- data/lib/omnizip/algorithms/bzip2/rle.rb +0 -2
- data/lib/omnizip/algorithms/bzip2.rb +1 -5
- data/lib/omnizip/algorithms/deflate/constants.rb +0 -2
- data/lib/omnizip/algorithms/deflate/decoder.rb +0 -2
- data/lib/omnizip/algorithms/deflate/encoder.rb +0 -2
- data/lib/omnizip/algorithms/deflate.rb +1 -5
- data/lib/omnizip/algorithms/deflate64/constants.rb +0 -2
- data/lib/omnizip/algorithms/deflate64/decoder.rb +0 -2
- data/lib/omnizip/algorithms/deflate64/encoder.rb +0 -2
- data/lib/omnizip/algorithms/deflate64/huffman_coder.rb +0 -2
- data/lib/omnizip/algorithms/deflate64/lz77_encoder.rb +0 -2
- data/lib/omnizip/algorithms/deflate64.rb +2 -4
- data/lib/omnizip/algorithms/lzma/bit_model.rb +0 -2
- data/lib/omnizip/algorithms/lzma/constants.rb +0 -2
- data/lib/omnizip/algorithms/lzma/decoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/dictionary.rb +0 -2
- data/lib/omnizip/algorithms/lzma/distance_coder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/encoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/length_coder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/literal_decoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/literal_encoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/lzip_decoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/lzma_alone_decoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/lzma_state.rb +0 -2
- data/lib/omnizip/algorithms/lzma/match.rb +0 -2
- data/lib/omnizip/algorithms/lzma/match_finder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/match_finder_config.rb +0 -2
- data/lib/omnizip/algorithms/lzma/match_finder_factory.rb +0 -2
- data/lib/omnizip/algorithms/lzma/optimal_encoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/probability_models.rb +0 -2
- data/lib/omnizip/algorithms/lzma/range_coder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/range_decoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/range_encoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/state.rb +0 -2
- data/lib/omnizip/algorithms/lzma/xz_buffered_range_encoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/xz_encoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/xz_encoder_fast.rb +0 -2
- data/lib/omnizip/algorithms/lzma/xz_match_finder_adapter.rb +0 -2
- data/lib/omnizip/algorithms/lzma/xz_price_calculator.rb +0 -2
- data/lib/omnizip/algorithms/lzma/xz_probability_models.rb +0 -2
- data/lib/omnizip/algorithms/lzma/xz_range_encoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma/xz_range_encoder_exact.rb +0 -2
- data/lib/omnizip/algorithms/lzma/xz_state.rb +0 -2
- data/lib/omnizip/algorithms/lzma/xz_utils_decoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma.rb +1 -3
- data/lib/omnizip/algorithms/lzma2/chunk_manager.rb +0 -2
- data/lib/omnizip/algorithms/lzma2/constants.rb +0 -2
- data/lib/omnizip/algorithms/lzma2/encoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma2/lzma2_chunk.rb +0 -2
- data/lib/omnizip/algorithms/lzma2/properties.rb +0 -2
- data/lib/omnizip/algorithms/lzma2/simple_lzma2_encoder.rb +0 -2
- data/lib/omnizip/algorithms/lzma2/xz_encoder_adapter.rb +0 -2
- data/lib/omnizip/algorithms/lzma2.rb +4 -14
- data/lib/omnizip/algorithms/ppmd7/constants.rb +0 -2
- data/lib/omnizip/algorithms/ppmd7/context.rb +0 -2
- data/lib/omnizip/algorithms/ppmd7/decoder.rb +0 -2
- data/lib/omnizip/algorithms/ppmd7/encoder.rb +0 -2
- data/lib/omnizip/algorithms/ppmd7/model.rb +0 -2
- data/lib/omnizip/algorithms/ppmd7/symbol_state.rb +0 -2
- data/lib/omnizip/algorithms/ppmd7.rb +0 -2
- data/lib/omnizip/algorithms/ppmd8/constants.rb +0 -2
- data/lib/omnizip/algorithms/ppmd8/context.rb +0 -2
- data/lib/omnizip/algorithms/ppmd8/decoder.rb +0 -2
- data/lib/omnizip/algorithms/ppmd8/encoder.rb +0 -2
- data/lib/omnizip/algorithms/ppmd8/model.rb +0 -2
- data/lib/omnizip/algorithms/ppmd8/restoration_method.rb +0 -2
- data/lib/omnizip/algorithms/ppmd8.rb +0 -2
- data/lib/omnizip/algorithms/ppmd_base.rb +0 -2
- data/lib/omnizip/algorithms/registration.rb +0 -2
- data/lib/omnizip/algorithms/sevenzip_lzma2.rb +0 -2
- data/lib/omnizip/algorithms/xz_lzma2.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/constants.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/decoder.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/encoder.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/frame/block.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/frame/header.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/frame.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/fse/bitstream.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/fse/encoder.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/fse/table.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/fse.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/huffman.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/huffman_encoder.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/literals.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/literals_encoder.rb +0 -2
- data/lib/omnizip/algorithms/zstandard/sequences.rb +0 -2
- data/lib/omnizip/algorithms/zstandard.rb +1 -5
- data/lib/omnizip/algorithms.rb +14 -3
- data/lib/omnizip/archive_handler.rb +0 -2
- data/lib/omnizip/archive_handlers/tar_handler.rb +0 -2
- data/lib/omnizip/archive_handlers/zip_handler.rb +0 -2
- data/lib/omnizip/archive_handlers.rb +0 -2
- data/lib/omnizip/buffer/memory_archive.rb +0 -2
- data/lib/omnizip/buffer/memory_extractor.rb +0 -2
- data/lib/omnizip/buffer.rb +0 -2
- data/lib/omnizip/checksum_registry.rb +0 -2
- data/lib/omnizip/checksums/crc32.rb +0 -2
- data/lib/omnizip/checksums/crc64.rb +0 -2
- data/lib/omnizip/checksums/crc_base.rb +0 -2
- data/lib/omnizip/checksums/registration.rb +0 -2
- data/lib/omnizip/checksums/verifier.rb +0 -2
- data/lib/omnizip/checksums.rb +0 -2
- data/lib/omnizip/chunked/memory_manager.rb +0 -2
- data/lib/omnizip/chunked/reader.rb +0 -2
- data/lib/omnizip/chunked/writer.rb +0 -2
- data/lib/omnizip/chunked.rb +0 -2
- data/lib/omnizip/cli/output_formatter.rb +0 -2
- data/lib/omnizip/cli/shared.rb +0 -2
- data/lib/omnizip/cli.rb +0 -2
- data/lib/omnizip/commands/archive_create_command.rb +0 -2
- data/lib/omnizip/commands/archive_extract_command.rb +0 -2
- data/lib/omnizip/commands/archive_list_command.rb +9 -9
- data/lib/omnizip/commands/archive_repair_command.rb +0 -2
- data/lib/omnizip/commands/archive_verify_command.rb +0 -2
- data/lib/omnizip/commands/compress_command.rb +0 -2
- data/lib/omnizip/commands/decompress_command.rb +0 -2
- data/lib/omnizip/commands/list_command.rb +0 -2
- data/lib/omnizip/commands/metadata_command.rb +0 -2
- data/lib/omnizip/commands/parity_create_command.rb +0 -2
- data/lib/omnizip/commands/parity_repair_command.rb +0 -2
- data/lib/omnizip/commands/parity_verify_command.rb +0 -2
- data/lib/omnizip/commands/profile_list_command.rb +0 -2
- data/lib/omnizip/commands/profile_show_command.rb +0 -2
- data/lib/omnizip/commands.rb +0 -2
- data/lib/omnizip/convenience.rb +0 -2
- data/lib/omnizip/converter/conversion_registry.rb +0 -2
- data/lib/omnizip/converter/conversion_strategy.rb +0 -2
- data/lib/omnizip/converter/seven_zip_to_zip_strategy.rb +0 -2
- data/lib/omnizip/converter/zip_to_seven_zip_strategy.rb +0 -2
- data/lib/omnizip/converter.rb +0 -2
- data/lib/omnizip/crypto/aes256/cipher.rb +0 -2
- data/lib/omnizip/crypto/aes256/constants.rb +0 -2
- data/lib/omnizip/crypto/aes256/key_derivation.rb +0 -2
- data/lib/omnizip/crypto/aes256.rb +0 -2
- data/lib/omnizip/crypto.rb +0 -2
- data/lib/omnizip/entry.rb +44 -0
- data/lib/omnizip/error.rb +0 -2
- data/lib/omnizip/eta/exponential_smoothing_estimator.rb +0 -2
- data/lib/omnizip/eta/moving_average_estimator.rb +0 -2
- data/lib/omnizip/eta/rate_calculator.rb +0 -2
- data/lib/omnizip/eta/sample_history.rb +0 -2
- data/lib/omnizip/eta/time_estimator.rb +0 -2
- data/lib/omnizip/eta.rb +0 -2
- data/lib/omnizip/extraction/filter_chain.rb +0 -2
- data/lib/omnizip/extraction/glob_pattern.rb +0 -2
- data/lib/omnizip/extraction/pattern_matcher.rb +0 -2
- data/lib/omnizip/extraction/predicate_pattern.rb +0 -2
- data/lib/omnizip/extraction/regex_pattern.rb +0 -2
- data/lib/omnizip/extraction/selective_extractor.rb +2 -12
- data/lib/omnizip/extraction.rb +0 -2
- data/lib/omnizip/file_type/mime_classifier.rb +0 -2
- data/lib/omnizip/file_type.rb +0 -2
- data/lib/omnizip/filter.rb +0 -2
- data/lib/omnizip/filter_pipeline.rb +1 -3
- data/lib/omnizip/filter_registry.rb +18 -18
- data/lib/omnizip/filters/bcj.rb +0 -2
- data/lib/omnizip/filters/bcj2/constants.rb +0 -2
- data/lib/omnizip/filters/bcj2/decoder.rb +0 -2
- data/lib/omnizip/filters/bcj2/encoder.rb +0 -2
- data/lib/omnizip/filters/bcj2/stream_data.rb +0 -2
- data/lib/omnizip/filters/bcj2.rb +1 -3
- data/lib/omnizip/filters/bcj_arm.rb +1 -3
- data/lib/omnizip/filters/bcj_arm64.rb +1 -3
- data/lib/omnizip/filters/bcj_ia64.rb +1 -3
- data/lib/omnizip/filters/bcj_ppc.rb +1 -3
- data/lib/omnizip/filters/bcj_sparc.rb +1 -3
- data/lib/omnizip/filters/bcj_x86.rb +1 -3
- data/lib/omnizip/filters/delta.rb +0 -2
- data/lib/omnizip/filters/xz_delta.rb +0 -2
- data/lib/omnizip/filters.rb +0 -4
- data/lib/omnizip/format_detector.rb +0 -2
- data/lib/omnizip/formats/bzip2_file.rb +0 -9
- data/lib/omnizip/formats/cpio/bounded_io.rb +0 -2
- data/lib/omnizip/formats/cpio/constants.rb +0 -2
- data/lib/omnizip/formats/cpio/entry.rb +6 -2
- data/lib/omnizip/formats/cpio/reader.rb +0 -2
- data/lib/omnizip/formats/cpio/writer.rb +0 -2
- data/lib/omnizip/formats/cpio.rb +0 -8
- data/lib/omnizip/formats/format_spec_loader.rb +0 -2
- data/lib/omnizip/formats/gzip.rb +0 -9
- data/lib/omnizip/formats/iso/directory_builder.rb +0 -2
- data/lib/omnizip/formats/iso/directory_record.rb +7 -2
- data/lib/omnizip/formats/iso/joliet.rb +0 -2
- data/lib/omnizip/formats/iso/path_table.rb +0 -2
- data/lib/omnizip/formats/iso/reader.rb +0 -2
- data/lib/omnizip/formats/iso/rock_ridge.rb +0 -2
- data/lib/omnizip/formats/iso/volume_builder.rb +0 -2
- data/lib/omnizip/formats/iso/volume_descriptor.rb +0 -2
- data/lib/omnizip/formats/iso/writer.rb +0 -2
- data/lib/omnizip/formats/iso.rb +0 -7
- data/lib/omnizip/formats/lzip.rb +0 -9
- data/lib/omnizip/formats/lzma_alone.rb +0 -8
- data/lib/omnizip/formats/msi/cab_extractor.rb +0 -2
- data/lib/omnizip/formats/msi/constants.rb +0 -2
- data/lib/omnizip/formats/msi/directory_resolver.rb +0 -2
- data/lib/omnizip/formats/msi/entry.rb +6 -2
- data/lib/omnizip/formats/msi/reader.rb +0 -2
- data/lib/omnizip/formats/msi/string_pool.rb +0 -2
- data/lib/omnizip/formats/msi/table_parser.rb +0 -2
- data/lib/omnizip/formats/msi.rb +0 -11
- data/lib/omnizip/formats/ole/allocation_table.rb +0 -2
- data/lib/omnizip/formats/ole/constants.rb +0 -2
- data/lib/omnizip/formats/ole/dirent.rb +6 -2
- data/lib/omnizip/formats/ole/header.rb +0 -2
- data/lib/omnizip/formats/ole/ranges_io.rb +0 -2
- data/lib/omnizip/formats/ole/storage.rb +0 -2
- data/lib/omnizip/formats/ole/types/variant.rb +0 -2
- data/lib/omnizip/formats/ole.rb +0 -11
- data/lib/omnizip/formats/rar/archive_repairer.rb +0 -2
- data/lib/omnizip/formats/rar/archive_verifier.rb +0 -2
- data/lib/omnizip/formats/rar/block_parser.rb +0 -2
- data/lib/omnizip/formats/rar/compression/bit_stream.rb +0 -2
- data/lib/omnizip/formats/rar/compression/dispatcher.rb +0 -2
- data/lib/omnizip/formats/rar/compression/lz77_huffman/decoder.rb +0 -2
- data/lib/omnizip/formats/rar/compression/lz77_huffman/encoder.rb +0 -2
- data/lib/omnizip/formats/rar/compression/lz77_huffman/huffman_builder.rb +0 -2
- data/lib/omnizip/formats/rar/compression/lz77_huffman/huffman_coder.rb +0 -2
- data/lib/omnizip/formats/rar/compression/lz77_huffman/match_finder.rb +0 -2
- data/lib/omnizip/formats/rar/compression/lz77_huffman/sliding_window.rb +0 -2
- data/lib/omnizip/formats/rar/compression/lz77_huffman.rb +0 -2
- data/lib/omnizip/formats/rar/compression/ppmd/context.rb +0 -2
- data/lib/omnizip/formats/rar/compression/ppmd/decoder.rb +0 -2
- data/lib/omnizip/formats/rar/compression/ppmd/encoder.rb +0 -2
- data/lib/omnizip/formats/rar/compression/ppmd.rb +0 -2
- data/lib/omnizip/formats/rar/compression.rb +0 -2
- data/lib/omnizip/formats/rar/compression_method_registry.rb +0 -2
- data/lib/omnizip/formats/rar/constants.rb +0 -2
- data/lib/omnizip/formats/rar/decompressor.rb +0 -2
- data/lib/omnizip/formats/rar/external_writer.rb +0 -2
- data/lib/omnizip/formats/rar/header.rb +0 -2
- data/lib/omnizip/formats/rar/license_validator.rb +0 -2
- data/lib/omnizip/formats/rar/models/rar_archive.rb +0 -2
- data/lib/omnizip/formats/rar/models/rar_entry.rb +0 -2
- data/lib/omnizip/formats/rar/models/rar_volume.rb +0 -2
- data/lib/omnizip/formats/rar/models.rb +0 -2
- data/lib/omnizip/formats/rar/parity_handler.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/compression/lzma.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/compression/lzss.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/compression/store.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/crc32.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/encryption/aes256_cbc.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/encryption/encryption_header.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/encryption/encryption_manager.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/encryption/key_derivation.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/header.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/models/encryption_options.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/models/recovery_options.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/models/solid_options.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/models/volume_options.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/multi_volume/volume_manager.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/multi_volume/volume_splitter.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/multi_volume/volume_writer.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/solid/solid_encoder.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/solid/solid_manager.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/solid/solid_stream.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/vint.rb +0 -2
- data/lib/omnizip/formats/rar/rar5/writer.rb +0 -2
- data/lib/omnizip/formats/rar/rar_format_base.rb +0 -2
- data/lib/omnizip/formats/rar/reader.rb +0 -2
- data/lib/omnizip/formats/rar/recovery_record.rb +0 -2
- data/lib/omnizip/formats/rar/volume_manager.rb +0 -2
- data/lib/omnizip/formats/rar/writer.rb +0 -2
- data/lib/omnizip/formats/rar.rb +0 -8
- data/lib/omnizip/formats/rar3/compressor.rb +0 -2
- data/lib/omnizip/formats/rar3/decompressor.rb +0 -2
- data/lib/omnizip/formats/rar3/reader.rb +7 -2
- data/lib/omnizip/formats/rar3/writer.rb +0 -2
- data/lib/omnizip/formats/rar5/compressor.rb +0 -2
- data/lib/omnizip/formats/rar5/decompressor.rb +0 -2
- data/lib/omnizip/formats/rar5/reader.rb +7 -2
- data/lib/omnizip/formats/rar5/writer.rb +0 -2
- data/lib/omnizip/formats/rpm/constants.rb +0 -2
- data/lib/omnizip/formats/rpm/entry.rb +6 -2
- data/lib/omnizip/formats/rpm/header.rb +0 -2
- data/lib/omnizip/formats/rpm/lead.rb +0 -2
- data/lib/omnizip/formats/rpm/tag.rb +0 -2
- data/lib/omnizip/formats/rpm/writer.rb +0 -2
- data/lib/omnizip/formats/rpm.rb +0 -2
- data/lib/omnizip/formats/seven_zip/bcj2_stream_decompressor.rb +0 -2
- data/lib/omnizip/formats/seven_zip/coder_chain.rb +0 -2
- data/lib/omnizip/formats/seven_zip/constants.rb +0 -2
- data/lib/omnizip/formats/seven_zip/encoded_header.rb +0 -2
- data/lib/omnizip/formats/seven_zip/encrypted_header.rb +0 -2
- data/lib/omnizip/formats/seven_zip/file_collector.rb +0 -2
- data/lib/omnizip/formats/seven_zip/header.rb +0 -2
- data/lib/omnizip/formats/seven_zip/header_encryptor.rb +0 -2
- data/lib/omnizip/formats/seven_zip/header_writer.rb +0 -2
- data/lib/omnizip/formats/seven_zip/models/coder_info.rb +0 -2
- data/lib/omnizip/formats/seven_zip/models/file_entry.rb +7 -2
- data/lib/omnizip/formats/seven_zip/models/folder.rb +0 -2
- data/lib/omnizip/formats/seven_zip/models/stream_info.rb +0 -2
- data/lib/omnizip/formats/seven_zip/models.rb +0 -2
- data/lib/omnizip/formats/seven_zip/parser.rb +0 -2
- data/lib/omnizip/formats/seven_zip/reader.rb +0 -2
- data/lib/omnizip/formats/seven_zip/split_archive_reader.rb +0 -2
- data/lib/omnizip/formats/seven_zip/split_archive_writer.rb +0 -2
- data/lib/omnizip/formats/seven_zip/stream_compressor.rb +0 -2
- data/lib/omnizip/formats/seven_zip/stream_decompressor.rb +0 -2
- data/lib/omnizip/formats/seven_zip/writer.rb +0 -2
- data/lib/omnizip/formats/seven_zip.rb +0 -8
- data/lib/omnizip/formats/tar/constants.rb +0 -2
- data/lib/omnizip/formats/tar/entry.rb +6 -2
- data/lib/omnizip/formats/tar/header.rb +0 -2
- data/lib/omnizip/formats/tar/reader.rb +0 -2
- data/lib/omnizip/formats/tar/writer.rb +0 -2
- data/lib/omnizip/formats/tar.rb +0 -8
- data/lib/omnizip/formats/xar/constants.rb +0 -2
- data/lib/omnizip/formats/xar/entry.rb +6 -2
- data/lib/omnizip/formats/xar/header.rb +0 -2
- data/lib/omnizip/formats/xar/reader.rb +0 -2
- data/lib/omnizip/formats/xar/toc.rb +0 -2
- data/lib/omnizip/formats/xar/writer.rb +0 -2
- data/lib/omnizip/formats/xar.rb +0 -8
- data/lib/omnizip/formats/xz/reader.rb +0 -2
- data/lib/omnizip/formats/xz/writer.rb +0 -2
- data/lib/omnizip/formats/xz.rb +0 -2
- data/lib/omnizip/formats/xz_const.rb +0 -2
- data/lib/omnizip/formats/xz_impl/block_decoder.rb +0 -2
- data/lib/omnizip/formats/xz_impl/block_encoder.rb +0 -2
- data/lib/omnizip/formats/xz_impl/block_header.rb +0 -2
- data/lib/omnizip/formats/xz_impl/block_header_parser.rb +0 -2
- data/lib/omnizip/formats/xz_impl/index_decoder.rb +0 -2
- data/lib/omnizip/formats/xz_impl/index_encoder.rb +0 -2
- data/lib/omnizip/formats/xz_impl/stream_decoder.rb +0 -2
- data/lib/omnizip/formats/xz_impl/stream_encoder.rb +0 -2
- data/lib/omnizip/formats/xz_impl/stream_footer.rb +0 -2
- data/lib/omnizip/formats/xz_impl/stream_footer_parser.rb +0 -2
- data/lib/omnizip/formats/xz_impl/stream_header.rb +0 -2
- data/lib/omnizip/formats/xz_impl/stream_header_parser.rb +0 -2
- data/lib/omnizip/formats/xz_impl/vli.rb +0 -2
- data/lib/omnizip/formats/xz_impl.rb +0 -2
- data/lib/omnizip/formats/zip/central_directory_header.rb +0 -2
- data/lib/omnizip/formats/zip/constants.rb +0 -2
- data/lib/omnizip/formats/zip/end_of_central_directory.rb +0 -2
- data/lib/omnizip/formats/zip/local_file_header.rb +0 -2
- data/lib/omnizip/formats/zip/reader.rb +0 -2
- data/lib/omnizip/formats/zip/unix_extra_field.rb +0 -2
- data/lib/omnizip/formats/zip/writer.rb +0 -2
- data/lib/omnizip/formats/zip/zip64_end_of_central_directory.rb +0 -2
- data/lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb +0 -2
- data/lib/omnizip/formats/zip/zip64_extra_field.rb +0 -2
- data/lib/omnizip/formats/zip.rb +0 -8
- data/lib/omnizip/formats.rb +0 -2
- data/lib/omnizip/implementations/base/lzma2_decoder_base.rb +0 -2
- data/lib/omnizip/implementations/base/lzma2_encoder_base.rb +0 -2
- data/lib/omnizip/implementations/base/lzma_decoder_base.rb +0 -2
- data/lib/omnizip/implementations/base/lzma_encoder_base.rb +0 -2
- data/lib/omnizip/implementations/base/state_machine_base.rb +0 -2
- data/lib/omnizip/implementations/base.rb +0 -2
- data/lib/omnizip/implementations/seven_zip/lzma/decoder.rb +0 -2
- data/lib/omnizip/implementations/seven_zip/lzma/encoder.rb +0 -2
- data/lib/omnizip/implementations/seven_zip/lzma/match_finder.rb +0 -2
- data/lib/omnizip/implementations/seven_zip/lzma/range_decoder.rb +0 -2
- data/lib/omnizip/implementations/seven_zip/lzma/range_encoder.rb +0 -2
- data/lib/omnizip/implementations/seven_zip/lzma/state_machine.rb +0 -2
- data/lib/omnizip/implementations/seven_zip/lzma.rb +0 -2
- data/lib/omnizip/implementations/seven_zip/lzma2/encoder.rb +0 -2
- data/lib/omnizip/implementations/seven_zip/lzma2.rb +0 -2
- data/lib/omnizip/implementations/seven_zip.rb +0 -2
- data/lib/omnizip/implementations/xz_utils/lzma2/decoder.rb +0 -2
- data/lib/omnizip/implementations/xz_utils/lzma2/encoder.rb +0 -2
- data/lib/omnizip/implementations/xz_utils/lzma2.rb +0 -2
- data/lib/omnizip/implementations/xz_utils.rb +0 -2
- data/lib/omnizip/implementations.rb +18 -6
- data/lib/omnizip/io/buffered_input.rb +0 -2
- data/lib/omnizip/io/buffered_output.rb +0 -2
- data/lib/omnizip/io/source.rb +0 -2
- data/lib/omnizip/io/stream_manager.rb +0 -2
- data/lib/omnizip/io.rb +0 -2
- data/lib/omnizip/link_handler/hard_link.rb +0 -2
- data/lib/omnizip/link_handler/symbolic_link.rb +0 -2
- data/lib/omnizip/link_handler.rb +0 -2
- data/lib/omnizip/metadata/archive_metadata.rb +0 -2
- data/lib/omnizip/metadata/entry_metadata.rb +7 -2
- data/lib/omnizip/metadata/metadata_editor.rb +0 -2
- data/lib/omnizip/metadata/metadata_registry.rb +0 -2
- data/lib/omnizip/metadata/metadata_validator.rb +0 -2
- data/lib/omnizip/metadata.rb +0 -2
- data/lib/omnizip/models/algorithm_metadata.rb +0 -2
- data/lib/omnizip/models/compression_options.rb +0 -2
- data/lib/omnizip/models/conversion_options.rb +0 -2
- data/lib/omnizip/models/conversion_result.rb +0 -2
- data/lib/omnizip/models/eta_result.rb +0 -2
- data/lib/omnizip/models/extraction_rule.rb +0 -2
- data/lib/omnizip/models/filter_chain.rb +0 -2
- data/lib/omnizip/models/filter_config.rb +0 -2
- data/lib/omnizip/models/match_result.rb +0 -2
- data/lib/omnizip/models/optimization_suggestion.rb +0 -2
- data/lib/omnizip/models/parallel_options.rb +0 -2
- data/lib/omnizip/models/performance_result.rb +0 -2
- data/lib/omnizip/models/profile_report.rb +0 -2
- data/lib/omnizip/models/progress_options.rb +0 -2
- data/lib/omnizip/models/split_options.rb +0 -2
- data/lib/omnizip/optimization_registry.rb +0 -2
- data/lib/omnizip/parallel/engine.rb +48 -0
- data/lib/omnizip/parallel/job_queue.rb +0 -2
- data/lib/omnizip/parallel/job_scheduler.rb +0 -2
- data/lib/omnizip/parallel/parallel_compressor.rb +5 -18
- data/lib/omnizip/parallel/parallel_extractor.rb +5 -18
- data/lib/omnizip/parallel/worker_pool.rb +0 -2
- data/lib/omnizip/parallel.rb +1 -2
- data/lib/omnizip/parity/chunked_block_processor.rb +0 -2
- data/lib/omnizip/parity/galois16.rb +0 -2
- data/lib/omnizip/parity/models/creator_packet.rb +0 -2
- data/lib/omnizip/parity/models/file_description_packet.rb +0 -2
- data/lib/omnizip/parity/models/ifsc_packet.rb +0 -2
- data/lib/omnizip/parity/models/main_packet.rb +0 -2
- data/lib/omnizip/parity/models/packet.rb +0 -2
- data/lib/omnizip/parity/models/packet_registry.rb +0 -2
- data/lib/omnizip/parity/models/recovery_slice_packet.rb +0 -2
- data/lib/omnizip/parity/models.rb +0 -2
- data/lib/omnizip/parity/par2_creator.rb +0 -2
- data/lib/omnizip/parity/par2_repairer.rb +0 -2
- data/lib/omnizip/parity/par2_verifier.rb +0 -2
- data/lib/omnizip/parity/par2cmdline_algorithm.rb +0 -2
- data/lib/omnizip/parity/par2cmdline_coefficients.rb +0 -2
- data/lib/omnizip/parity/reed_solomon_decoder.rb +0 -2
- data/lib/omnizip/parity/reed_solomon_encoder.rb +0 -2
- data/lib/omnizip/parity/reed_solomon_matrix.rb +0 -2
- data/lib/omnizip/parity.rb +0 -2
- data/lib/omnizip/password/encryption_registry.rb +0 -2
- data/lib/omnizip/password/encryption_strategy.rb +0 -2
- data/lib/omnizip/password/password_validator.rb +0 -2
- data/lib/omnizip/password/winzip_aes_strategy.rb +0 -2
- data/lib/omnizip/password/zip_crypto_strategy.rb +0 -2
- data/lib/omnizip/password.rb +0 -2
- data/lib/omnizip/pipe/stream_compressor.rb +0 -2
- data/lib/omnizip/pipe/stream_decompressor.rb +0 -2
- data/lib/omnizip/pipe.rb +0 -2
- data/lib/omnizip/platform/ntfs_streams.rb +0 -2
- data/lib/omnizip/platform.rb +0 -2
- data/lib/omnizip/profile/archive_profile.rb +0 -2
- data/lib/omnizip/profile/balanced_profile.rb +0 -2
- data/lib/omnizip/profile/binary_profile.rb +0 -2
- data/lib/omnizip/profile/compression_profile.rb +0 -2
- data/lib/omnizip/profile/custom_profile.rb +0 -2
- data/lib/omnizip/profile/fast_profile.rb +0 -2
- data/lib/omnizip/profile/maximum_profile.rb +0 -2
- data/lib/omnizip/profile/profile_detector.rb +0 -2
- data/lib/omnizip/profile/profile_registry.rb +0 -2
- data/lib/omnizip/profile/text_profile.rb +0 -2
- data/lib/omnizip/profile.rb +0 -2
- data/lib/omnizip/profiler/memory_profiler.rb +0 -2
- data/lib/omnizip/profiler/method_profiler.rb +0 -2
- data/lib/omnizip/profiler/report_generator.rb +0 -2
- data/lib/omnizip/profiler.rb +0 -2
- data/lib/omnizip/progress/callback_reporter.rb +0 -2
- data/lib/omnizip/progress/console_reporter.rb +0 -2
- data/lib/omnizip/progress/log_reporter.rb +0 -2
- data/lib/omnizip/progress/operation_progress.rb +0 -2
- data/lib/omnizip/progress/progress_bar.rb +0 -2
- data/lib/omnizip/progress/progress_reporter.rb +0 -2
- data/lib/omnizip/progress/progress_tracker.rb +0 -2
- data/lib/omnizip/progress/silent_reporter.rb +0 -2
- data/lib/omnizip/progress.rb +0 -2
- data/lib/omnizip/registry.rb +0 -3
- data/lib/omnizip/rubyzip_compat.rb +0 -4
- data/lib/omnizip/temp/safe_extract.rb +0 -2
- data/lib/omnizip/temp/temp_file.rb +0 -2
- data/lib/omnizip/temp/temp_file_pool.rb +0 -2
- data/lib/omnizip/temp.rb +0 -2
- data/lib/omnizip/version.rb +1 -1
- data/lib/omnizip/zip/entry.rb +7 -2
- data/lib/omnizip/zip/file.rb +0 -2
- data/lib/omnizip/zip/input_stream.rb +0 -2
- data/lib/omnizip/zip/output_stream.rb +0 -2
- data/lib/omnizip/zip.rb +0 -2
- data/lib/omnizip.rb +2 -2
- metadata +4 -6
- data/lib/omnizip/filters/filter_base.rb +0 -8
- data/lib/omnizip/filters/registration.rb +0 -24
- data/lib/omnizip/filters/registry.rb +0 -113
- data/lib/omnizip/format_registry.rb +0 -102
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
require "omnizip"
|
|
5
3
|
module Omnizip
|
|
4
|
+
# Bit-level SDK ports: state machines, range coders, match finders,
|
|
5
|
+
# raw LZMA/LZMA2 encoders and decoders.
|
|
6
|
+
#
|
|
7
|
+
# This namespace owns the *primitives*; +Omnizip::Algorithms+ owns
|
|
8
|
+
# the *streaming contract*. The boundary is: +Algorithms+ calls
|
|
9
|
+
# +Implementations+, never the reverse. Files under this tree
|
|
10
|
+
# should never reach across into format-specific concerns (no
|
|
11
|
+
# .7z header parsing, no ZIP central directory, no tar entry
|
|
12
|
+
# metadata).
|
|
13
|
+
#
|
|
14
|
+
# The two top-level sub-namespaces mirror the upstream SDK split:
|
|
15
|
+
# - +SevenZip+ : ports of 7-Zip's LZMA/LZMA2 encoder + decoder
|
|
16
|
+
# - +XZUtils+ : ports of XZ Utils' LZMA/LZMA2 encoder + decoder
|
|
17
|
+
#
|
|
18
|
+
# Despite the LZMA name, the two SDKs diverge in subtle ways (no
|
|
19
|
+
# EOS marker, different chunk padding, different property-byte
|
|
20
|
+
# handling); keeping them in separate trees makes those
|
|
21
|
+
# divergences visible rather than hidden in flag parameters.
|
|
6
22
|
module Implementations
|
|
7
|
-
# Implementation namespace for various algorithm ports
|
|
8
|
-
# This module contains reference implementations ported from external projects
|
|
9
|
-
|
|
10
|
-
# Base classes for implementation inheritance
|
|
11
23
|
autoload :Base, "omnizip/implementations/base"
|
|
12
24
|
end
|
|
13
25
|
end
|
data/lib/omnizip/io/source.rb
CHANGED
data/lib/omnizip/io.rb
CHANGED
data/lib/omnizip/link_handler.rb
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
require "omnizip"
|
|
5
3
|
module Omnizip
|
|
6
4
|
module Metadata
|
|
7
5
|
# Model for file entry metadata
|
|
8
6
|
# Wraps CentralDirectoryHeader with a cleaner metadata API
|
|
9
7
|
class EntryMetadata
|
|
8
|
+
include Omnizip::Entry
|
|
9
|
+
|
|
10
10
|
attr_reader :entry
|
|
11
11
|
|
|
12
|
+
def entry_name = entry.name
|
|
13
|
+
def entry_directory? = entry.directory?
|
|
14
|
+
def entry_size = entry.size
|
|
15
|
+
def entry_mtime = entry.time
|
|
16
|
+
|
|
12
17
|
# Initialize metadata for an entry
|
|
13
18
|
# @param entry [Omnizip::Zip::Entry] The entry to manage metadata for
|
|
14
19
|
def initialize(entry)
|
data/lib/omnizip/metadata.rb
CHANGED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "fractor"
|
|
4
|
+
|
|
5
|
+
module Omnizip
|
|
6
|
+
module Parallel
|
|
7
|
+
# Engine owns the Fractor worker-pool dance: build the pool, submit
|
|
8
|
+
# a batch of work, run it to completion, return successful and
|
|
9
|
+
# failed results. Callers (ParallelCompressor, ParallelExtractor,
|
|
10
|
+
# future operations) supply the worker class and the work items;
|
|
11
|
+
# Engine handles the threading.
|
|
12
|
+
#
|
|
13
|
+
# This is the deep module behind the parallel API: the threading
|
|
14
|
+
# shape is identical across every consumer, so it lives here once.
|
|
15
|
+
# Domain-specific concerns (which file to read, which archive to
|
|
16
|
+
# open, what stats to track) stay with the caller.
|
|
17
|
+
class Engine
|
|
18
|
+
# @param worker_class [Class] a +Fractor::Worker+ subclass whose
|
|
19
|
+
# +#process(work)+ turns one work item into a result.
|
|
20
|
+
# @param threads [Integer] worker count.
|
|
21
|
+
def initialize(worker_class:, threads:)
|
|
22
|
+
@worker_class = worker_class
|
|
23
|
+
@threads = threads
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Run +work_items+ through the pool and yield each successful
|
|
27
|
+
# +Fractor::WorkResult+ to the caller-supplied block.
|
|
28
|
+
#
|
|
29
|
+
# @param work_items [Array<Fractor::Work>] batch to submit.
|
|
30
|
+
# @yieldparam result [Fractor::WorkResult] a successful result.
|
|
31
|
+
# @return [Array<Fractor::WorkResult>] the failed results, for
|
|
32
|
+
# the caller to decide how to surface.
|
|
33
|
+
def run(work_items)
|
|
34
|
+
pool = Fractor::WorkerPool.new(
|
|
35
|
+
worker_class: @worker_class,
|
|
36
|
+
num_workers: @threads,
|
|
37
|
+
continuous: false,
|
|
38
|
+
)
|
|
39
|
+
pool.start
|
|
40
|
+
pool.submit_batch(work_items)
|
|
41
|
+
pool.run
|
|
42
|
+
|
|
43
|
+
pool.successful_results.each { |r| yield r if block_given? }
|
|
44
|
+
pool.failed_results
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
require "omnizip"
|
|
5
3
|
require "fractor"
|
|
6
4
|
require "fileutils"
|
|
7
5
|
|
|
@@ -214,20 +212,11 @@ level: 6)
|
|
|
214
212
|
)
|
|
215
213
|
end
|
|
216
214
|
|
|
217
|
-
#
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
)
|
|
223
|
-
|
|
224
|
-
pool.start
|
|
225
|
-
pool.submit_batch(work_items)
|
|
226
|
-
pool.run
|
|
227
|
-
|
|
228
|
-
# Collect results
|
|
229
|
-
results = pool.successful_results
|
|
230
|
-
errors = pool.failed_results
|
|
215
|
+
# Run the worker pool through the shared engine.
|
|
216
|
+
engine = Engine.new(worker_class: CompressionWorker,
|
|
217
|
+
threads: @options.threads)
|
|
218
|
+
results = []
|
|
219
|
+
errors = engine.run(work_items) { |r| results << r }
|
|
231
220
|
|
|
232
221
|
# Handle errors
|
|
233
222
|
unless errors.empty?
|
|
@@ -240,8 +229,6 @@ level: 6)
|
|
|
240
229
|
# Write archive sequentially (thread-safe)
|
|
241
230
|
write_archive(output, results, compression: compression)
|
|
242
231
|
|
|
243
|
-
pool.shutdown
|
|
244
|
-
|
|
245
232
|
@stats[:end_time] = Time.now
|
|
246
233
|
@stats[:files_processed] = results.size
|
|
247
234
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
require "omnizip"
|
|
5
3
|
require "fractor"
|
|
6
4
|
require "fileutils"
|
|
7
5
|
|
|
@@ -203,20 +201,11 @@ module Omnizip
|
|
|
203
201
|
)
|
|
204
202
|
end
|
|
205
203
|
|
|
206
|
-
#
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
)
|
|
212
|
-
|
|
213
|
-
pool.start
|
|
214
|
-
pool.submit_batch(work_items)
|
|
215
|
-
pool.run
|
|
216
|
-
|
|
217
|
-
# Collect results
|
|
218
|
-
results = pool.successful_results
|
|
219
|
-
errors = pool.failed_results
|
|
204
|
+
# Run the worker pool through the shared engine.
|
|
205
|
+
engine = Engine.new(worker_class: ExtractionWorker,
|
|
206
|
+
threads: @options.threads)
|
|
207
|
+
results = []
|
|
208
|
+
errors = engine.run(work_items) { |r| results << r }
|
|
220
209
|
|
|
221
210
|
# Handle errors
|
|
222
211
|
unless errors.empty?
|
|
@@ -229,8 +218,6 @@ module Omnizip
|
|
|
229
218
|
# Write files to disk (thread-safe)
|
|
230
219
|
extracted_paths = write_extracted_files(results, overwrite: overwrite)
|
|
231
220
|
|
|
232
|
-
pool.shutdown
|
|
233
|
-
|
|
234
221
|
@stats[:end_time] = Time.now
|
|
235
222
|
@stats[:files_extracted] = results.size
|
|
236
223
|
|
data/lib/omnizip/parallel.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
require "omnizip"
|
|
5
3
|
module Omnizip
|
|
6
4
|
# Parallel processing module for multi-threaded compression/extraction
|
|
7
5
|
#
|
|
@@ -28,6 +26,7 @@ module Omnizip
|
|
|
28
26
|
autoload :JobQueue, "omnizip/parallel/job_queue"
|
|
29
27
|
autoload :JobScheduler, "omnizip/parallel/job_scheduler"
|
|
30
28
|
autoload :WorkerPool, "omnizip/parallel/worker_pool"
|
|
29
|
+
autoload :Engine, "omnizip/parallel/engine"
|
|
31
30
|
autoload :ParallelCompressor, "omnizip/parallel/parallel_compressor"
|
|
32
31
|
autoload :ParallelExtractor, "omnizip/parallel/parallel_extractor"
|
|
33
32
|
|