omnizip 0.4.7-aarch64-linux
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 +7 -0
- data/.rspec +3 -0
- data/.rubocop.yml +32 -0
- data/.rubocop_todo.yml +293 -0
- data/CHANGELOG.md +1647 -0
- data/CONTEXT.md +68 -0
- data/COPYING +502 -0
- data/Gemfile +19 -0
- data/LICENSE +12 -0
- data/README.adoc +1327 -0
- data/Rakefile +15 -0
- data/TODO.refactor/00-overview.md +67 -0
- data/TODO.refactor/01-registry-base-class.md +81 -0
- data/TODO.refactor/02-error-hierarchy.md +57 -0
- data/TODO.refactor/03-autoload-entry-point.md +69 -0
- data/TODO.refactor/04-filter-base-consolidation.md +49 -0
- data/TODO.refactor/05-send-private-methods.md +64 -0
- data/TODO.refactor/06-instance-variable-access.md +69 -0
- data/TODO.refactor/07-respond-to-replacement.md +237 -0
- data/TODO.refactor/08-spec-doubles.md +27 -0
- data/TODO.refactor/09-cli-shared-module.md +35 -0
- data/TODO.refactor/10-format-detector-ocp.md +34 -0
- data/TODO.refactor/11-convenience-decoupling.md +38 -0
- data/TODO.refactor/12-thread-safety.md +8 -0
- data/TODO.refactor/13-lutaml-model-migration.md +158 -0
- data/TODO.refactor/14-add-missing-specs.md +25 -0
- data/benchmark/README.md +260 -0
- data/benchmark/benchmark_suite.rb +125 -0
- data/benchmark/compression_bench.rb +181 -0
- data/benchmark/filter_bench.rb +180 -0
- data/benchmark/models/benchmark_result.rb +59 -0
- data/benchmark/models/comparison_result.rb +69 -0
- data/benchmark/profile_suite.rb +167 -0
- data/benchmark/reporter.rb +150 -0
- data/benchmark/run_benchmarks.rb +66 -0
- data/benchmark/test_data.rb +137 -0
- data/config/formats/rar3_spec.yml +92 -0
- data/config/formats/rar5_spec.yml +102 -0
- data/docs/.github/workflows/docs.yml +142 -0
- data/docs/.gitignore +21 -0
- data/docs/.lychee.toml +67 -0
- data/docs/Gemfile +13 -0
- data/docs/RAR_WRITE_SUPPORT.md +26 -0
- data/docs/README.md +101 -0
- data/docs/_config.yml +112 -0
- data/docs/assets/logo.svg +1 -0
- data/docs/assets/omnizip-logo.pdf +1540 -11
- data/docs/comparison/feature-matrix.adoc +694 -0
- data/docs/comparison/index.adoc +113 -0
- data/docs/comparison/vs-7zip.adoc +309 -0
- data/docs/comparison/vs-peazip.adoc +77 -0
- data/docs/comparison/vs-rubyzip.adoc +342 -0
- data/docs/comparison/vs-winrar.adoc +100 -0
- data/docs/compatibility.adoc +579 -0
- data/docs/concepts/index.adoc +129 -0
- data/docs/developer/architecture.adoc +256 -0
- data/docs/developer/contributing.adoc +158 -0
- data/docs/developer/index.adoc +25 -0
- data/docs/developer/testing.adoc +212 -0
- data/docs/getting-started/basic-usage.adoc +263 -0
- data/docs/getting-started/index.adoc +42 -0
- data/docs/getting-started/installation.adoc +138 -0
- data/docs/getting-started/quick-start.adoc +183 -0
- data/docs/getting-started/your-first-archive.adoc +219 -0
- data/docs/guides/advanced-features/encryption.adoc +277 -0
- data/docs/guides/advanced-features/index.adoc +59 -0
- data/docs/guides/advanced-features/parallel-processing.adoc +144 -0
- data/docs/guides/advanced-features/progress-tracking.adoc +124 -0
- data/docs/guides/advanced-features/streaming.adoc +142 -0
- data/docs/guides/archive-formats/gzip-format.adoc +105 -0
- data/docs/guides/archive-formats/index.adoc +160 -0
- data/docs/guides/archive-formats/ole-format.adoc +151 -0
- data/docs/guides/archive-formats/rar-format.adoc +104 -0
- data/docs/guides/archive-formats/rar5.adoc +521 -0
- data/docs/guides/archive-formats/rpm-format.adoc +108 -0
- data/docs/guides/archive-formats/seven-zip-format.adoc +35 -0
- data/docs/guides/archive-formats/tar-format.adoc +106 -0
- data/docs/guides/archive-formats/xz-format.adoc +118 -0
- data/docs/guides/archive-formats/zip-format.adoc +35 -0
- data/docs/guides/compression-algorithms/bzip2.adoc +114 -0
- data/docs/guides/compression-algorithms/deflate.adoc +313 -0
- data/docs/guides/compression-algorithms/index.adoc +190 -0
- data/docs/guides/compression-algorithms/lzma.adoc +394 -0
- data/docs/guides/compression-algorithms/lzma2.adoc +244 -0
- data/docs/guides/compression-algorithms/ppmd.adoc +313 -0
- data/docs/guides/compression-algorithms/zstandard.adoc +296 -0
- data/docs/guides/creating-archives.adoc +348 -0
- data/docs/guides/extracting-archives.adoc +53 -0
- data/docs/guides/format-conversion.adoc +64 -0
- data/docs/guides/index.adoc +49 -0
- data/docs/guides/migration-rubyzip.adoc +217 -0
- data/docs/guides/parity-archives.adoc +605 -0
- data/docs/guides/performance-tuning.adoc +88 -0
- data/docs/index.adoc +228 -0
- data/docs/lychee.toml +67 -0
- data/docs/reference/api/overview.adoc +187 -0
- data/docs/reference/cli/compress-command.adoc +114 -0
- data/docs/reference/cli/overview.adoc +140 -0
- data/docs/reference/index.adoc +26 -0
- data/docs/resources/faq.adoc +185 -0
- data/docs/resources/quick-reference.adoc +222 -0
- data/docs/rust-backend.md +0 -0
- data/docs/troubleshooting/index.adoc +207 -0
- data/docs/xar_format.md +216 -0
- data/examples/api_comparison.rb +205 -0
- data/examples/deflate64_example.rb +96 -0
- data/examples/par2_demo.rb +121 -0
- data/examples/quick_start_native.rb +150 -0
- data/examples/quick_start_rubyzip.rb +115 -0
- data/examples/rubyzip_compatibility_demo.rb +194 -0
- data/exe/omnizip +27 -0
- data/lib/omnizip/algorithm.rb +176 -0
- data/lib/omnizip/algorithm_registry.rb +65 -0
- data/lib/omnizip/algorithms/.keep +0 -0
- data/lib/omnizip/algorithms/bzip2/bwt.rb +236 -0
- data/lib/omnizip/algorithms/bzip2/bz2.rb +687 -0
- data/lib/omnizip/algorithms/bzip2/rle.rb +146 -0
- data/lib/omnizip/algorithms/bzip2.rb +108 -0
- data/lib/omnizip/algorithms/deflate/constants.rb +28 -0
- data/lib/omnizip/algorithms/deflate/decoder.rb +37 -0
- data/lib/omnizip/algorithms/deflate/encoder.rb +45 -0
- data/lib/omnizip/algorithms/deflate.rb +135 -0
- data/lib/omnizip/algorithms/deflate64/constants.rb +45 -0
- data/lib/omnizip/algorithms/deflate64/decoder.rb +151 -0
- data/lib/omnizip/algorithms/deflate64/encoder.rb +95 -0
- data/lib/omnizip/algorithms/deflate64/huffman_coder.rb +352 -0
- data/lib/omnizip/algorithms/deflate64/lz77_encoder.rb +140 -0
- data/lib/omnizip/algorithms/deflate64.rb +118 -0
- data/lib/omnizip/algorithms/lzma/bit_model.rb +120 -0
- data/lib/omnizip/algorithms/lzma/constants.rb +112 -0
- data/lib/omnizip/algorithms/lzma/decoder.rb +146 -0
- data/lib/omnizip/algorithms/lzma/dictionary.rb +70 -0
- data/lib/omnizip/algorithms/lzma/distance_coder.rb +326 -0
- data/lib/omnizip/algorithms/lzma/encoder.rb +139 -0
- data/lib/omnizip/algorithms/lzma/length_coder.rb +172 -0
- data/lib/omnizip/algorithms/lzma/literal_decoder.rb +204 -0
- data/lib/omnizip/algorithms/lzma/literal_encoder.rb +208 -0
- data/lib/omnizip/algorithms/lzma/lzip_decoder.rb +368 -0
- data/lib/omnizip/algorithms/lzma/lzma1_encoder.rb +105 -0
- data/lib/omnizip/algorithms/lzma/lzma_alone_decoder.rb +194 -0
- data/lib/omnizip/algorithms/lzma/lzma_state.rb +128 -0
- data/lib/omnizip/algorithms/lzma/match.rb +32 -0
- data/lib/omnizip/algorithms/lzma/match_finder.rb +233 -0
- data/lib/omnizip/algorithms/lzma/match_finder_config.rb +142 -0
- data/lib/omnizip/algorithms/lzma/match_finder_factory.rb +84 -0
- data/lib/omnizip/algorithms/lzma/optimal_encoder.rb +159 -0
- data/lib/omnizip/algorithms/lzma/probability_models.rb +72 -0
- data/lib/omnizip/algorithms/lzma/range_coder.rb +82 -0
- data/lib/omnizip/algorithms/lzma/range_decoder.rb +274 -0
- data/lib/omnizip/algorithms/lzma/range_encoder.rb +202 -0
- data/lib/omnizip/algorithms/lzma/state.rb +127 -0
- data/lib/omnizip/algorithms/lzma/xz_buffered_range_encoder.rb +323 -0
- data/lib/omnizip/algorithms/lzma/xz_encoder.rb +420 -0
- data/lib/omnizip/algorithms/lzma/xz_encoder_fast.rb +640 -0
- data/lib/omnizip/algorithms/lzma/xz_match_finder_adapter.rb +224 -0
- data/lib/omnizip/algorithms/lzma/xz_price_calculator.rb +167 -0
- data/lib/omnizip/algorithms/lzma/xz_probability_models.rb +258 -0
- data/lib/omnizip/algorithms/lzma/xz_range_encoder.rb +223 -0
- data/lib/omnizip/algorithms/lzma/xz_range_encoder_exact.rb +314 -0
- data/lib/omnizip/algorithms/lzma/xz_state.rb +108 -0
- data/lib/omnizip/algorithms/lzma/xz_utils_decoder.rb +1311 -0
- data/lib/omnizip/algorithms/lzma.rb +266 -0
- data/lib/omnizip/algorithms/lzma2/chunk_manager.rb +180 -0
- data/lib/omnizip/algorithms/lzma2/constants.rb +38 -0
- data/lib/omnizip/algorithms/lzma2/encoder.rb +145 -0
- data/lib/omnizip/algorithms/lzma2/lzma2_chunk.rb +165 -0
- data/lib/omnizip/algorithms/lzma2/properties.rb +179 -0
- data/lib/omnizip/algorithms/lzma2/simple_lzma2_encoder.rb +122 -0
- data/lib/omnizip/algorithms/lzma2/xz_encoder_adapter.rb +85 -0
- data/lib/omnizip/algorithms/lzma2.rb +133 -0
- data/lib/omnizip/algorithms/ppmd7/constants.rb +74 -0
- data/lib/omnizip/algorithms/ppmd7/context.rb +151 -0
- data/lib/omnizip/algorithms/ppmd7/decoder.rb +127 -0
- data/lib/omnizip/algorithms/ppmd7/encoder.rb +153 -0
- data/lib/omnizip/algorithms/ppmd7/model.rb +245 -0
- data/lib/omnizip/algorithms/ppmd7/symbol_state.rb +57 -0
- data/lib/omnizip/algorithms/ppmd7.rb +146 -0
- data/lib/omnizip/algorithms/ppmd8/constants.rb +61 -0
- data/lib/omnizip/algorithms/ppmd8/context.rb +32 -0
- data/lib/omnizip/algorithms/ppmd8/decoder.rb +104 -0
- data/lib/omnizip/algorithms/ppmd8/encoder.rb +135 -0
- data/lib/omnizip/algorithms/ppmd8/model.rb +246 -0
- data/lib/omnizip/algorithms/ppmd8/restoration_method.rb +78 -0
- data/lib/omnizip/algorithms/ppmd8.rb +122 -0
- data/lib/omnizip/algorithms/ppmd_base.rb +142 -0
- data/lib/omnizip/algorithms/registration.rb +28 -0
- data/lib/omnizip/algorithms/zstandard/constants.rb +158 -0
- data/lib/omnizip/algorithms/zstandard/decoder.rb +249 -0
- data/lib/omnizip/algorithms/zstandard/dictionary.rb +73 -0
- data/lib/omnizip/algorithms/zstandard/encoder.rb +294 -0
- data/lib/omnizip/algorithms/zstandard/frame/block.rb +143 -0
- data/lib/omnizip/algorithms/zstandard/frame/header.rb +233 -0
- data/lib/omnizip/algorithms/zstandard/frame.rb +33 -0
- data/lib/omnizip/algorithms/zstandard/fse/bitstream.rb +183 -0
- data/lib/omnizip/algorithms/zstandard/fse/encoder.rb +534 -0
- data/lib/omnizip/algorithms/zstandard/fse/interleaved.rb +92 -0
- data/lib/omnizip/algorithms/zstandard/fse/table.rb +188 -0
- data/lib/omnizip/algorithms/zstandard/fse/table_description.rb +203 -0
- data/lib/omnizip/algorithms/zstandard/fse.rb +53 -0
- data/lib/omnizip/algorithms/zstandard/huffman.rb +276 -0
- data/lib/omnizip/algorithms/zstandard/huffman_encoder.rb +327 -0
- data/lib/omnizip/algorithms/zstandard/ldm.rb +121 -0
- data/lib/omnizip/algorithms/zstandard/literals.rb +241 -0
- data/lib/omnizip/algorithms/zstandard/literals_encoder.rb +96 -0
- data/lib/omnizip/algorithms/zstandard/match_finder.rb +483 -0
- data/lib/omnizip/algorithms/zstandard/sequences.rb +350 -0
- data/lib/omnizip/algorithms/zstandard/sequences_encoder.rb +333 -0
- data/lib/omnizip/algorithms/zstandard/xxhash.rb +159 -0
- data/lib/omnizip/algorithms/zstandard.rb +210 -0
- data/lib/omnizip/algorithms.rb +35 -0
- data/lib/omnizip/archive/builder.rb +48 -0
- data/lib/omnizip/archive/reader_session.rb +67 -0
- data/lib/omnizip/archive.rb +86 -0
- data/lib/omnizip/archive_handler.rb +82 -0
- data/lib/omnizip/archive_handlers/cpio_handler.rb +47 -0
- data/lib/omnizip/archive_handlers/iso_handler.rb +54 -0
- data/lib/omnizip/archive_handlers/ole_handler.rb +37 -0
- data/lib/omnizip/archive_handlers/rar_handler.rb +96 -0
- data/lib/omnizip/archive_handlers/rpm_handler.rb +45 -0
- data/lib/omnizip/archive_handlers/seven_zip_handler.rb +89 -0
- data/lib/omnizip/archive_handlers/tar_handler.rb +75 -0
- data/lib/omnizip/archive_handlers/xar_handler.rb +49 -0
- data/lib/omnizip/archive_handlers/zip_handler.rb +115 -0
- data/lib/omnizip/archive_handlers.rb +18 -0
- data/lib/omnizip/backends.rb +160 -0
- data/lib/omnizip/buffer/memory_archive.rb +246 -0
- data/lib/omnizip/buffer/memory_extractor.rb +234 -0
- data/lib/omnizip/buffer/seven_zip_bridge.rb +171 -0
- data/lib/omnizip/buffer.rb +187 -0
- data/lib/omnizip/checksum_registry.rb +41 -0
- data/lib/omnizip/checksums/crc32.rb +101 -0
- data/lib/omnizip/checksums/crc64.rb +102 -0
- data/lib/omnizip/checksums/crc_base.rb +158 -0
- data/lib/omnizip/checksums/registration.rb +16 -0
- data/lib/omnizip/checksums/verifier.rb +130 -0
- data/lib/omnizip/checksums.rb +11 -0
- data/lib/omnizip/chunked/memory_manager.rb +194 -0
- data/lib/omnizip/chunked/reader.rb +78 -0
- data/lib/omnizip/chunked/writer.rb +123 -0
- data/lib/omnizip/chunked.rb +123 -0
- data/lib/omnizip/cli/output_formatter.rb +112 -0
- data/lib/omnizip/cli.rb +604 -0
- data/lib/omnizip/commands/.keep +0 -0
- data/lib/omnizip/commands/archive_create_command.rb +245 -0
- data/lib/omnizip/commands/archive_extract_command.rb +231 -0
- data/lib/omnizip/commands/archive_list_command.rb +204 -0
- data/lib/omnizip/commands/archive_repair_command.rb +129 -0
- data/lib/omnizip/commands/archive_verify_command.rb +115 -0
- data/lib/omnizip/commands/compress_command.rb +115 -0
- data/lib/omnizip/commands/decompress_command.rb +149 -0
- data/lib/omnizip/commands/list_command.rb +51 -0
- data/lib/omnizip/commands/metadata_command.rb +215 -0
- data/lib/omnizip/commands/parity_create_command.rb +114 -0
- data/lib/omnizip/commands/parity_repair_command.rb +120 -0
- data/lib/omnizip/commands/parity_verify_command.rb +122 -0
- data/lib/omnizip/commands/profile_list_command.rb +54 -0
- data/lib/omnizip/commands/profile_show_command.rb +44 -0
- data/lib/omnizip/commands.rb +21 -0
- data/lib/omnizip/convenience.rb +389 -0
- data/lib/omnizip/converter/conversion_registry.rb +50 -0
- data/lib/omnizip/converter/conversion_strategy.rb +108 -0
- data/lib/omnizip/converter/extract_repack_strategy.rb +51 -0
- data/lib/omnizip/converter/seven_zip_to_zip_strategy.rb +43 -0
- data/lib/omnizip/converter/zip_to_seven_zip_strategy.rb +54 -0
- data/lib/omnizip/converter.rb +124 -0
- data/lib/omnizip/crypto/aes256/cipher.rb +104 -0
- data/lib/omnizip/crypto/aes256/constants.rb +28 -0
- data/lib/omnizip/crypto/aes256/key_derivation.rb +100 -0
- data/lib/omnizip/crypto/aes256.rb +102 -0
- data/lib/omnizip/crypto.rb +11 -0
- data/lib/omnizip/entry.rb +44 -0
- data/lib/omnizip/error.rb +110 -0
- data/lib/omnizip/eta/exponential_smoothing_estimator.rb +95 -0
- data/lib/omnizip/eta/moving_average_estimator.rb +96 -0
- data/lib/omnizip/eta/rate_calculator.rb +104 -0
- data/lib/omnizip/eta/sample_history.rb +143 -0
- data/lib/omnizip/eta/time_estimator.rb +106 -0
- data/lib/omnizip/eta.rb +68 -0
- data/lib/omnizip/extraction/filter_chain.rb +179 -0
- data/lib/omnizip/extraction/glob_pattern.rb +140 -0
- data/lib/omnizip/extraction/pattern_matcher.rb +66 -0
- data/lib/omnizip/extraction/predicate_pattern.rb +52 -0
- data/lib/omnizip/extraction/regex_pattern.rb +50 -0
- data/lib/omnizip/extraction/selective_extractor.rb +247 -0
- data/lib/omnizip/extraction.rb +115 -0
- data/lib/omnizip/file_type/mime_classifier.rb +144 -0
- data/lib/omnizip/file_type.rb +117 -0
- data/lib/omnizip/filter.rb +141 -0
- data/lib/omnizip/filter_pipeline.rb +108 -0
- data/lib/omnizip/filter_registry.rb +113 -0
- data/lib/omnizip/filters/bcj.rb +277 -0
- data/lib/omnizip/filters/bcj2/constants.rb +53 -0
- data/lib/omnizip/filters/bcj2/decoder.rb +263 -0
- data/lib/omnizip/filters/bcj2/encoder.rb +58 -0
- data/lib/omnizip/filters/bcj2/stream_data.rb +91 -0
- data/lib/omnizip/filters/bcj2.rb +93 -0
- data/lib/omnizip/filters/bcj_arm.rb +174 -0
- data/lib/omnizip/filters/bcj_arm64.rb +242 -0
- data/lib/omnizip/filters/bcj_ia64.rb +194 -0
- data/lib/omnizip/filters/bcj_ppc.rb +188 -0
- data/lib/omnizip/filters/bcj_sparc.rb +174 -0
- data/lib/omnizip/filters/bcj_x86.rb +191 -0
- data/lib/omnizip/filters/delta.rb +195 -0
- data/lib/omnizip/filters/xz_delta.rb +258 -0
- data/lib/omnizip/filters.rb +20 -0
- data/lib/omnizip/format_detector.rb +166 -0
- data/lib/omnizip/formats/.keep +0 -0
- data/lib/omnizip/formats/bzip2_file.rb +159 -0
- data/lib/omnizip/formats/cpio/bounded_io.rb +66 -0
- data/lib/omnizip/formats/cpio/constants.rb +55 -0
- data/lib/omnizip/formats/cpio/entry.rb +389 -0
- data/lib/omnizip/formats/cpio/reader.rb +194 -0
- data/lib/omnizip/formats/cpio/writer.rb +232 -0
- data/lib/omnizip/formats/cpio.rb +132 -0
- data/lib/omnizip/formats/format_spec_loader.rb +228 -0
- data/lib/omnizip/formats/gzip.rb +236 -0
- data/lib/omnizip/formats/iso/directory_builder.rb +321 -0
- data/lib/omnizip/formats/iso/directory_record.rb +162 -0
- data/lib/omnizip/formats/iso/joliet.rb +204 -0
- data/lib/omnizip/formats/iso/path_table.rb +125 -0
- data/lib/omnizip/formats/iso/reader.rb +194 -0
- data/lib/omnizip/formats/iso/rock_ridge.rb +349 -0
- data/lib/omnizip/formats/iso/volume_builder.rb +319 -0
- data/lib/omnizip/formats/iso/volume_descriptor.rb +168 -0
- data/lib/omnizip/formats/iso/writer.rb +543 -0
- data/lib/omnizip/formats/iso.rb +133 -0
- data/lib/omnizip/formats/lzip.rb +161 -0
- data/lib/omnizip/formats/lzma_alone.rb +149 -0
- data/lib/omnizip/formats/msi/cab_extractor.rb +181 -0
- data/lib/omnizip/formats/msi/constants.rb +157 -0
- data/lib/omnizip/formats/msi/directory_resolver.rb +188 -0
- data/lib/omnizip/formats/msi/entry.rb +134 -0
- data/lib/omnizip/formats/msi/reader.rb +301 -0
- data/lib/omnizip/formats/msi/string_pool.rb +246 -0
- data/lib/omnizip/formats/msi/table_parser.rb +244 -0
- data/lib/omnizip/formats/msi.rb +73 -0
- data/lib/omnizip/formats/ole/allocation_table.rb +263 -0
- data/lib/omnizip/formats/ole/constants.rb +61 -0
- data/lib/omnizip/formats/ole/dirent.rb +439 -0
- data/lib/omnizip/formats/ole/header.rb +199 -0
- data/lib/omnizip/formats/ole/ranges_io.rb +347 -0
- data/lib/omnizip/formats/ole/storage.rb +482 -0
- data/lib/omnizip/formats/ole/types/variant.rb +338 -0
- data/lib/omnizip/formats/ole.rb +143 -0
- data/lib/omnizip/formats/rar/archive_repairer.rb +240 -0
- data/lib/omnizip/formats/rar/archive_verifier.rb +192 -0
- data/lib/omnizip/formats/rar/block_parser.rb +282 -0
- data/lib/omnizip/formats/rar/compression/bit_stream.rb +180 -0
- data/lib/omnizip/formats/rar/compression/dispatcher.rb +210 -0
- data/lib/omnizip/formats/rar/compression/lz77_huffman/decoder.rb +212 -0
- data/lib/omnizip/formats/rar/compression/lz77_huffman/encoder.rb +154 -0
- data/lib/omnizip/formats/rar/compression/lz77_huffman/huffman_builder.rb +217 -0
- data/lib/omnizip/formats/rar/compression/lz77_huffman/huffman_coder.rb +189 -0
- data/lib/omnizip/formats/rar/compression/lz77_huffman/match_finder.rb +135 -0
- data/lib/omnizip/formats/rar/compression/lz77_huffman/sliding_window.rb +165 -0
- data/lib/omnizip/formats/rar/compression/lz77_huffman.rb +25 -0
- data/lib/omnizip/formats/rar/compression/ppmd/context.rb +103 -0
- data/lib/omnizip/formats/rar/compression/ppmd/decoder.rb +238 -0
- data/lib/omnizip/formats/rar/compression/ppmd/encoder.rb +250 -0
- data/lib/omnizip/formats/rar/compression/ppmd.rb +16 -0
- data/lib/omnizip/formats/rar/compression.rb +17 -0
- data/lib/omnizip/formats/rar/compression_method_registry.rb +106 -0
- data/lib/omnizip/formats/rar/constants.rb +88 -0
- data/lib/omnizip/formats/rar/decompressor.rb +316 -0
- data/lib/omnizip/formats/rar/external_writer.rb +311 -0
- data/lib/omnizip/formats/rar/header.rb +209 -0
- data/lib/omnizip/formats/rar/license_validator.rb +111 -0
- data/lib/omnizip/formats/rar/models/rar_archive.rb +77 -0
- data/lib/omnizip/formats/rar/models/rar_entry.rb +65 -0
- data/lib/omnizip/formats/rar/models/rar_volume.rb +56 -0
- data/lib/omnizip/formats/rar/models.rb +14 -0
- data/lib/omnizip/formats/rar/parity_handler.rb +299 -0
- data/lib/omnizip/formats/rar/rar5/compression/lzma.rb +200 -0
- data/lib/omnizip/formats/rar/rar5/compression/lzss.rb +584 -0
- data/lib/omnizip/formats/rar/rar5/compression/store.rb +60 -0
- data/lib/omnizip/formats/rar/rar5/crc32.rb +39 -0
- data/lib/omnizip/formats/rar/rar5/encryption/aes256_cbc.rb +96 -0
- data/lib/omnizip/formats/rar/rar5/encryption/encryption_header.rb +114 -0
- data/lib/omnizip/formats/rar/rar5/encryption/encryption_manager.rb +162 -0
- data/lib/omnizip/formats/rar/rar5/encryption/key_derivation.rb +97 -0
- data/lib/omnizip/formats/rar/rar5/header.rb +208 -0
- data/lib/omnizip/formats/rar/rar5/models/encryption_options.rb +74 -0
- data/lib/omnizip/formats/rar/rar5/models/recovery_options.rb +63 -0
- data/lib/omnizip/formats/rar/rar5/models/solid_options.rb +63 -0
- data/lib/omnizip/formats/rar/rar5/models/volume_options.rb +74 -0
- data/lib/omnizip/formats/rar/rar5/multi_volume/ARCHITECTURE.md +290 -0
- data/lib/omnizip/formats/rar/rar5/multi_volume/volume_manager.rb +260 -0
- data/lib/omnizip/formats/rar/rar5/multi_volume/volume_splitter.rb +155 -0
- data/lib/omnizip/formats/rar/rar5/multi_volume/volume_writer.rb +176 -0
- data/lib/omnizip/formats/rar/rar5/solid/solid_encoder.rb +108 -0
- data/lib/omnizip/formats/rar/rar5/solid/solid_manager.rb +139 -0
- data/lib/omnizip/formats/rar/rar5/solid/solid_stream.rb +121 -0
- data/lib/omnizip/formats/rar/rar5/vint.rb +53 -0
- data/lib/omnizip/formats/rar/rar5/writer.rb +540 -0
- data/lib/omnizip/formats/rar/rar_format_base.rb +239 -0
- data/lib/omnizip/formats/rar/reader.rb +377 -0
- data/lib/omnizip/formats/rar/recovery_record.rb +245 -0
- data/lib/omnizip/formats/rar/volume_manager.rb +166 -0
- data/lib/omnizip/formats/rar/writer.rb +437 -0
- data/lib/omnizip/formats/rar.rb +193 -0
- data/lib/omnizip/formats/rar3/compressor.rb +71 -0
- data/lib/omnizip/formats/rar3/decompressor.rb +64 -0
- data/lib/omnizip/formats/rar3/reader.rb +107 -0
- data/lib/omnizip/formats/rar3/writer.rb +220 -0
- data/lib/omnizip/formats/rar3.rb +15 -0
- data/lib/omnizip/formats/rar5/compressor.rb +71 -0
- data/lib/omnizip/formats/rar5/decompressor.rb +64 -0
- data/lib/omnizip/formats/rar5/reader.rb +130 -0
- data/lib/omnizip/formats/rar5/writer.rb +65 -0
- data/lib/omnizip/formats/rar5.rb +15 -0
- data/lib/omnizip/formats/rpm/constants.rb +58 -0
- data/lib/omnizip/formats/rpm/entry.rb +106 -0
- data/lib/omnizip/formats/rpm/header.rb +106 -0
- data/lib/omnizip/formats/rpm/lead.rb +132 -0
- data/lib/omnizip/formats/rpm/tag.rb +228 -0
- data/lib/omnizip/formats/rpm/writer.rb +652 -0
- data/lib/omnizip/formats/rpm.rb +458 -0
- data/lib/omnizip/formats/seven_zip/bcj2_stream_decompressor.rb +274 -0
- data/lib/omnizip/formats/seven_zip/coder_chain.rb +169 -0
- data/lib/omnizip/formats/seven_zip/constants.rb +126 -0
- data/lib/omnizip/formats/seven_zip/encoded_header.rb +110 -0
- data/lib/omnizip/formats/seven_zip/encrypted_header.rb +139 -0
- data/lib/omnizip/formats/seven_zip/file_collector.rb +143 -0
- data/lib/omnizip/formats/seven_zip/header.rb +102 -0
- data/lib/omnizip/formats/seven_zip/header_encryptor.rb +132 -0
- data/lib/omnizip/formats/seven_zip/header_writer.rb +425 -0
- data/lib/omnizip/formats/seven_zip/models/coder_info.rb +30 -0
- data/lib/omnizip/formats/seven_zip/models/file_entry.rb +65 -0
- data/lib/omnizip/formats/seven_zip/models/folder.rb +67 -0
- data/lib/omnizip/formats/seven_zip/models/stream_info.rb +42 -0
- data/lib/omnizip/formats/seven_zip/models.rb +20 -0
- data/lib/omnizip/formats/seven_zip/parser.rb +671 -0
- data/lib/omnizip/formats/seven_zip/reader.rb +626 -0
- data/lib/omnizip/formats/seven_zip/split_archive_reader.rb +611 -0
- data/lib/omnizip/formats/seven_zip/split_archive_writer.rb +308 -0
- data/lib/omnizip/formats/seven_zip/stream_compressor.rb +151 -0
- data/lib/omnizip/formats/seven_zip/stream_decompressor.rb +166 -0
- data/lib/omnizip/formats/seven_zip/writer.rb +801 -0
- data/lib/omnizip/formats/seven_zip.rb +179 -0
- data/lib/omnizip/formats/tar/constants.rb +73 -0
- data/lib/omnizip/formats/tar/entry.rb +98 -0
- data/lib/omnizip/formats/tar/header.rb +206 -0
- data/lib/omnizip/formats/tar/reader.rb +119 -0
- data/lib/omnizip/formats/tar/writer.rb +212 -0
- data/lib/omnizip/formats/tar.rb +74 -0
- data/lib/omnizip/formats/xar/constants.rb +119 -0
- data/lib/omnizip/formats/xar/entry.rb +268 -0
- data/lib/omnizip/formats/xar/header.rb +223 -0
- data/lib/omnizip/formats/xar/reader.rb +400 -0
- data/lib/omnizip/formats/xar/toc.rb +570 -0
- data/lib/omnizip/formats/xar/writer.rb +461 -0
- data/lib/omnizip/formats/xar.rb +145 -0
- data/lib/omnizip/formats/xz/reader.rb +121 -0
- data/lib/omnizip/formats/xz/writer.rb +416 -0
- data/lib/omnizip/formats/xz.rb +210 -0
- data/lib/omnizip/formats/xz_const.rb +49 -0
- data/lib/omnizip/formats/xz_impl/block_decoder.rb +761 -0
- data/lib/omnizip/formats/xz_impl/block_encoder.rb +304 -0
- data/lib/omnizip/formats/xz_impl/block_header.rb +210 -0
- data/lib/omnizip/formats/xz_impl/block_header_parser.rb +182 -0
- data/lib/omnizip/formats/xz_impl/index_decoder.rb +174 -0
- data/lib/omnizip/formats/xz_impl/index_encoder.rb +120 -0
- data/lib/omnizip/formats/xz_impl/stream_decoder.rb +470 -0
- data/lib/omnizip/formats/xz_impl/stream_encoder.rb +95 -0
- data/lib/omnizip/formats/xz_impl/stream_footer.rb +79 -0
- data/lib/omnizip/formats/xz_impl/stream_footer_parser.rb +115 -0
- data/lib/omnizip/formats/xz_impl/stream_header.rb +53 -0
- data/lib/omnizip/formats/xz_impl/stream_header_parser.rb +106 -0
- data/lib/omnizip/formats/xz_impl/vli.rb +128 -0
- data/lib/omnizip/formats/xz_impl.rb +52 -0
- data/lib/omnizip/formats/zip/central_directory_header.rb +223 -0
- data/lib/omnizip/formats/zip/constants.rb +69 -0
- data/lib/omnizip/formats/zip/end_of_central_directory.rb +132 -0
- data/lib/omnizip/formats/zip/local_file_header.rb +136 -0
- data/lib/omnizip/formats/zip/reader.rb +376 -0
- data/lib/omnizip/formats/zip/unix_extra_field.rb +153 -0
- data/lib/omnizip/formats/zip/writer.rb +489 -0
- data/lib/omnizip/formats/zip/zip64_end_of_central_directory.rb +102 -0
- data/lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb +64 -0
- data/lib/omnizip/formats/zip/zip64_extra_field.rb +112 -0
- data/lib/omnizip/formats/zip.rb +50 -0
- data/lib/omnizip/formats.rb +29 -0
- data/lib/omnizip/implementations/base/lzma2_decoder_base.rb +75 -0
- data/lib/omnizip/implementations/base/lzma2_encoder_base.rb +128 -0
- data/lib/omnizip/implementations/base/lzma_decoder_base.rb +83 -0
- data/lib/omnizip/implementations/base/lzma_encoder_base.rb +108 -0
- data/lib/omnizip/implementations/base/state_machine_base.rb +182 -0
- data/lib/omnizip/implementations/base.rb +19 -0
- data/lib/omnizip/implementations/rust/archive.rb +93 -0
- data/lib/omnizip/implementations/rust/library.rb +221 -0
- data/lib/omnizip/implementations/rust.rb +26 -0
- data/lib/omnizip/implementations/seven_zip/lzma/decoder.rb +428 -0
- data/lib/omnizip/implementations/seven_zip/lzma/encoder.rb +456 -0
- data/lib/omnizip/implementations/seven_zip/lzma/match_finder.rb +285 -0
- data/lib/omnizip/implementations/seven_zip/lzma/range_decoder.rb +197 -0
- data/lib/omnizip/implementations/seven_zip/lzma/range_encoder.rb +194 -0
- data/lib/omnizip/implementations/seven_zip/lzma/state_machine.rb +139 -0
- data/lib/omnizip/implementations/seven_zip/lzma.rb +21 -0
- data/lib/omnizip/implementations/seven_zip/lzma2/encoder.rb +56 -0
- data/lib/omnizip/implementations/seven_zip/lzma2.rb +12 -0
- data/lib/omnizip/implementations/seven_zip.rb +11 -0
- data/lib/omnizip/implementations/xz_utils/lzma2/decoder.rb +547 -0
- data/lib/omnizip/implementations/xz_utils/lzma2/encoder.rb +748 -0
- data/lib/omnizip/implementations/xz_utils/lzma2.rb +13 -0
- data/lib/omnizip/implementations/xz_utils.rb +10 -0
- data/lib/omnizip/implementations.rb +25 -0
- data/lib/omnizip/io/buffered_input.rb +147 -0
- data/lib/omnizip/io/buffered_output.rb +106 -0
- data/lib/omnizip/io/source.rb +143 -0
- data/lib/omnizip/io/stream_manager.rb +117 -0
- data/lib/omnizip/io.rb +15 -0
- data/lib/omnizip/link_handler/hard_link.rb +79 -0
- data/lib/omnizip/link_handler/symbolic_link.rb +74 -0
- data/lib/omnizip/link_handler.rb +129 -0
- data/lib/omnizip/metadata/archive_metadata.rb +114 -0
- data/lib/omnizip/metadata/entry_metadata.rb +153 -0
- data/lib/omnizip/metadata/metadata_editor.rb +169 -0
- data/lib/omnizip/metadata/metadata_registry.rb +71 -0
- data/lib/omnizip/metadata/metadata_validator.rb +101 -0
- data/lib/omnizip/metadata.rb +58 -0
- data/lib/omnizip/models/.keep +0 -0
- data/lib/omnizip/models/algorithm_metadata.rb +41 -0
- data/lib/omnizip/models/attribute_apply.rb +40 -0
- data/lib/omnizip/models/compression_options.rb +53 -0
- data/lib/omnizip/models/conversion_options.rb +79 -0
- data/lib/omnizip/models/conversion_result.rb +141 -0
- data/lib/omnizip/models/eta_result.rb +45 -0
- data/lib/omnizip/models/extraction_rule.rb +115 -0
- data/lib/omnizip/models/filter_chain.rb +142 -0
- data/lib/omnizip/models/filter_config.rb +148 -0
- data/lib/omnizip/models/match_result.rb +141 -0
- data/lib/omnizip/models/optimization_suggestion.rb +95 -0
- data/lib/omnizip/models/parallel_options.rb +116 -0
- data/lib/omnizip/models/performance_result.rb +85 -0
- data/lib/omnizip/models/profile_report.rb +116 -0
- data/lib/omnizip/models/progress_options.rb +39 -0
- data/lib/omnizip/models/split_options.rb +116 -0
- data/lib/omnizip/optimization_registry.rb +45 -0
- data/lib/omnizip/parallel/engine.rb +52 -0
- data/lib/omnizip/parallel/job_queue.rb +209 -0
- data/lib/omnizip/parallel/job_scheduler.rb +225 -0
- data/lib/omnizip/parallel/parallel_compressor.rb +326 -0
- data/lib/omnizip/parallel/parallel_extractor.rb +238 -0
- data/lib/omnizip/parallel/thread_pool.rb +60 -0
- data/lib/omnizip/parallel/worker_pool.rb +227 -0
- data/lib/omnizip/parallel.rb +156 -0
- data/lib/omnizip/parity/chunked_block_processor.rb +194 -0
- data/lib/omnizip/parity/galois16.rb +145 -0
- data/lib/omnizip/parity/models/creator_packet.rb +71 -0
- data/lib/omnizip/parity/models/file_description_packet.rb +131 -0
- data/lib/omnizip/parity/models/ifsc_packet.rb +111 -0
- data/lib/omnizip/parity/models/main_packet.rb +126 -0
- data/lib/omnizip/parity/models/packet.rb +156 -0
- data/lib/omnizip/parity/models/packet_registry.rb +102 -0
- data/lib/omnizip/parity/models/recovery_slice_packet.rb +76 -0
- data/lib/omnizip/parity/models.rb +27 -0
- data/lib/omnizip/parity/par2_creator.rb +496 -0
- data/lib/omnizip/parity/par2_repairer.rb +409 -0
- data/lib/omnizip/parity/par2_verifier.rb +373 -0
- data/lib/omnizip/parity/par2cmdline_algorithm.rb +108 -0
- data/lib/omnizip/parity/par2cmdline_coefficients.rb +78 -0
- data/lib/omnizip/parity/reed_solomon_decoder.rb +263 -0
- data/lib/omnizip/parity/reed_solomon_encoder.rb +108 -0
- data/lib/omnizip/parity/reed_solomon_matrix.rb +339 -0
- data/lib/omnizip/parity.rb +207 -0
- data/lib/omnizip/password/encryption_registry.rb +26 -0
- data/lib/omnizip/password/encryption_strategy.rb +96 -0
- data/lib/omnizip/password/password_validator.rb +129 -0
- data/lib/omnizip/password/winzip_aes_strategy.rb +190 -0
- data/lib/omnizip/password/zip_crypto_strategy.rb +135 -0
- data/lib/omnizip/password.rb +88 -0
- data/lib/omnizip/pipe/stream_compressor.rb +124 -0
- data/lib/omnizip/pipe/stream_decompressor.rb +173 -0
- data/lib/omnizip/pipe.rb +120 -0
- data/lib/omnizip/platform/ntfs_streams.rb +200 -0
- data/lib/omnizip/platform.rb +189 -0
- data/lib/omnizip/profile/archive_profile.rb +36 -0
- data/lib/omnizip/profile/balanced_profile.rb +31 -0
- data/lib/omnizip/profile/binary_profile.rb +33 -0
- data/lib/omnizip/profile/compression_profile.rb +157 -0
- data/lib/omnizip/profile/custom_profile.rb +155 -0
- data/lib/omnizip/profile/fast_profile.rb +31 -0
- data/lib/omnizip/profile/maximum_profile.rb +31 -0
- data/lib/omnizip/profile/profile_detector.rb +108 -0
- data/lib/omnizip/profile/profile_registry.rb +160 -0
- data/lib/omnizip/profile/text_profile.rb +33 -0
- data/lib/omnizip/profile.rb +261 -0
- data/lib/omnizip/profiler/memory_profiler.rb +66 -0
- data/lib/omnizip/profiler/method_profiler.rb +49 -0
- data/lib/omnizip/profiler/report_generator.rb +158 -0
- data/lib/omnizip/profiler.rb +192 -0
- data/lib/omnizip/progress/callback_reporter.rb +34 -0
- data/lib/omnizip/progress/console_reporter.rb +59 -0
- data/lib/omnizip/progress/log_reporter.rb +89 -0
- data/lib/omnizip/progress/operation_progress.rb +118 -0
- data/lib/omnizip/progress/progress_bar.rb +156 -0
- data/lib/omnizip/progress/progress_reporter.rb +40 -0
- data/lib/omnizip/progress/progress_tracker.rb +215 -0
- data/lib/omnizip/progress/silent_reporter.rb +22 -0
- data/lib/omnizip/progress.rb +131 -0
- data/lib/omnizip/registry.rb +111 -0
- data/lib/omnizip/rubyzip_compat.rb +61 -0
- data/lib/omnizip/temp/safe_extract.rb +124 -0
- data/lib/omnizip/temp/temp_file.rb +123 -0
- data/lib/omnizip/temp/temp_file_pool.rb +109 -0
- data/lib/omnizip/temp.rb +184 -0
- data/lib/omnizip/version.rb +5 -0
- data/lib/omnizip/zip/entry.rb +160 -0
- data/lib/omnizip/zip/file.rb +485 -0
- data/lib/omnizip/zip/input_stream.rb +270 -0
- data/lib/omnizip/zip/output_stream.rb +320 -0
- data/lib/omnizip/zip.rb +23 -0
- data/lib/omnizip.rb +157 -0
- data/lib/tasks/msi_test_files.rake +66 -0
- data/lib/tasks/platform_gems.rake +147 -0
- data/lib/tasks/rust_backend.rake +48 -0
- data/readme-docs/advanced-features.adoc +514 -0
- data/readme-docs/api-usage.adoc +445 -0
- data/readme-docs/architecture.adoc +450 -0
- data/readme-docs/archive-formats.adoc +479 -0
- data/readme-docs/cli-usage.adoc +222 -0
- data/readme-docs/compression-algorithms.adoc +446 -0
- data/readme-docs/compression-profiles.adoc +247 -0
- data/readme-docs/encryption-checksums.adoc +328 -0
- data/readme-docs/format-converter.adoc +316 -0
- data/readme-docs/installation.adoc +228 -0
- data/readme-docs/par2-archives.adoc +608 -0
- data/readme-docs/performance-profiler.adoc +389 -0
- data/readme-docs/preprocessing-filters.adoc +280 -0
- data/vendor/libomnizip_ffi.so +0 -0
- data/xz-file-format-1.2.1.txt +1174 -0
- metadata +768 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: CLI Overview
|
|
3
|
+
nav_order: 51
|
|
4
|
+
parent: Reference
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
== Command-Line Interface Overview
|
|
8
|
+
|
|
9
|
+
=== General
|
|
10
|
+
|
|
11
|
+
Omnizip provides a comprehensive command-line interface for all compression and archive operations.
|
|
12
|
+
|
|
13
|
+
=== Basic Syntax
|
|
14
|
+
|
|
15
|
+
[source,bash]
|
|
16
|
+
----
|
|
17
|
+
omnizip [global-options] COMMAND [command-options] [arguments]
|
|
18
|
+
----
|
|
19
|
+
|
|
20
|
+
=== Global Options
|
|
21
|
+
|
|
22
|
+
`--version`, `-v`:: Show version information
|
|
23
|
+
`--help`, `-h`:: Show help message
|
|
24
|
+
|
|
25
|
+
=== Available Commands
|
|
26
|
+
|
|
27
|
+
==== Compression Commands
|
|
28
|
+
|
|
29
|
+
* link:compress-command[`compress`] - Compress a file or stream
|
|
30
|
+
* link:decompress-command[`decompress`] - Decompress a file or stream
|
|
31
|
+
|
|
32
|
+
==== Archive Commands
|
|
33
|
+
|
|
34
|
+
* link:archive-command[`archive create`] - Create an archive
|
|
35
|
+
* link:archive-command[`archive extract`] - Extract an archive
|
|
36
|
+
* link:archive-command[`archive list`] - List archive contents
|
|
37
|
+
* link:archive-command[`archive metadata`] - View/edit archive metadata
|
|
38
|
+
|
|
39
|
+
==== Utility Commands
|
|
40
|
+
|
|
41
|
+
* link:list-command[`list`] - List available algorithms
|
|
42
|
+
* link:profile-command[`profile`] - Manage compression profiles
|
|
43
|
+
* link:convert-command[`convert`] - Convert between formats
|
|
44
|
+
|
|
45
|
+
=== Common Patterns
|
|
46
|
+
|
|
47
|
+
==== Pipe Mode
|
|
48
|
+
|
|
49
|
+
Use `-` for stdin/stdout:
|
|
50
|
+
|
|
51
|
+
[source,bash]
|
|
52
|
+
----
|
|
53
|
+
# Read from stdin
|
|
54
|
+
cat input.txt | omnizip compress - output.lzma
|
|
55
|
+
|
|
56
|
+
# Write to stdout
|
|
57
|
+
omnizip compress input.txt - > output.lzma
|
|
58
|
+
|
|
59
|
+
# Full pipe
|
|
60
|
+
cat input.txt | omnizip compress - - | omnizip decompress - output.txt
|
|
61
|
+
----
|
|
62
|
+
|
|
63
|
+
==== Verbosity
|
|
64
|
+
|
|
65
|
+
Enable detailed output with `--verbose`:
|
|
66
|
+
|
|
67
|
+
[source,bash]
|
|
68
|
+
----
|
|
69
|
+
omnizip compress input.txt output.lzma --verbose
|
|
70
|
+
----
|
|
71
|
+
|
|
72
|
+
==== Compression Levels
|
|
73
|
+
|
|
74
|
+
Most commands accept compression levels:
|
|
75
|
+
|
|
76
|
+
[source,bash]
|
|
77
|
+
----
|
|
78
|
+
# Fast (1-3)
|
|
79
|
+
omnizip compress input.txt output.lzma --level 1
|
|
80
|
+
|
|
81
|
+
# Balanced (4-6)
|
|
82
|
+
omnizip compress input.txt output.lzma --level 5
|
|
83
|
+
|
|
84
|
+
# Maximum (7-9)
|
|
85
|
+
omnizip compress input.txt output.lzma --level 9
|
|
86
|
+
----
|
|
87
|
+
|
|
88
|
+
=== Command Help
|
|
89
|
+
|
|
90
|
+
Each command supports `--help`:
|
|
91
|
+
|
|
92
|
+
[source,bash]
|
|
93
|
+
----
|
|
94
|
+
omnizip compress --help
|
|
95
|
+
omnizip archive create --help
|
|
96
|
+
omnizip profile list --help
|
|
97
|
+
----
|
|
98
|
+
|
|
99
|
+
=== Exit Codes
|
|
100
|
+
|
|
101
|
+
* `0` - Success
|
|
102
|
+
* `1` - Error occurred
|
|
103
|
+
* `2` - Invalid command or options
|
|
104
|
+
|
|
105
|
+
=== Environment Variables
|
|
106
|
+
|
|
107
|
+
`OMNIZIP_LEVEL`:: Default compression level (1-9)
|
|
108
|
+
`OMNIZIP_ALGORITHM`:: Default compression algorithm
|
|
109
|
+
`OMNIZIP_THREADS`:: Number of threads for parallel operations
|
|
110
|
+
|
|
111
|
+
=== Examples
|
|
112
|
+
|
|
113
|
+
==== Quick Backup
|
|
114
|
+
|
|
115
|
+
[source,bash]
|
|
116
|
+
----
|
|
117
|
+
# Create compressed backup
|
|
118
|
+
omnizip archive create backup.7z documents/ --level 7
|
|
119
|
+
|
|
120
|
+
# Verify
|
|
121
|
+
omnizip archive list backup.7z
|
|
122
|
+
|
|
123
|
+
# Extract to test
|
|
124
|
+
omnizip archive extract backup.7z /tmp/test/
|
|
125
|
+
----
|
|
126
|
+
|
|
127
|
+
==== Batch Processing
|
|
128
|
+
|
|
129
|
+
[source,bash]
|
|
130
|
+
----
|
|
131
|
+
# Compress all log files
|
|
132
|
+
for log in *.log; do
|
|
133
|
+
omnizip compress "$log" "${log}.lzma" --level 5
|
|
134
|
+
done
|
|
135
|
+
----
|
|
136
|
+
|
|
137
|
+
=== Related Sections
|
|
138
|
+
|
|
139
|
+
* link:compress-command.html[compress command] - Compress files
|
|
140
|
+
* link:../api/overview.html[Ruby API] - Programmatic interface
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Reference
|
|
3
|
+
nav_order: 50
|
|
4
|
+
has_children: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
== Reference
|
|
8
|
+
|
|
9
|
+
Complete technical reference for Omnizip CLI and Ruby API.
|
|
10
|
+
|
|
11
|
+
=== Command-Line Interface
|
|
12
|
+
|
|
13
|
+
* link:cli/overview.html[CLI Overview] - Command-line interface introduction
|
|
14
|
+
* link:cli/compress-command.html[compress] - Compress files command reference
|
|
15
|
+
|
|
16
|
+
=== Ruby API
|
|
17
|
+
|
|
18
|
+
* link:api/overview.html[API Overview] - Ruby API introduction and examples
|
|
19
|
+
|
|
20
|
+
== Additional Resources
|
|
21
|
+
|
|
22
|
+
For more detailed guides, see:
|
|
23
|
+
|
|
24
|
+
* link:../guides/[How-To Guides] - Step-by-step guides for common tasks
|
|
25
|
+
* link:../getting-started/[Getting Started] - Installation and quick start
|
|
26
|
+
* link:../comparison/[Comparison] - Compare with other tools
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: FAQ
|
|
3
|
+
nav_order: 71
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
== Frequently Asked Questions
|
|
7
|
+
|
|
8
|
+
=== General Questions
|
|
9
|
+
|
|
10
|
+
==== What is Omnizip?
|
|
11
|
+
|
|
12
|
+
Omnizip is a pure Ruby compression library supporting multiple compression algorithms (LZMA, LZMA2, BZip2, PPMd, Deflate, Zstandard) and archive formats (7z, ZIP, RAR, TAR, etc.) with zero external dependencies.
|
|
13
|
+
|
|
14
|
+
==== Why use Omnizip?
|
|
15
|
+
|
|
16
|
+
* **Portability** - Works on all Ruby platforms (MRI, JRuby, TruffleRuby)
|
|
17
|
+
* **No Dependencies** - Zero external dependencies or native extensions
|
|
18
|
+
* **Comprehensive** - Support for 10+ archive formats and 6 compression algorithms
|
|
19
|
+
* **Extensible** - Registry-based plugin architecture
|
|
20
|
+
|
|
21
|
+
==== How fast is Omnizip?
|
|
22
|
+
|
|
23
|
+
Pure Ruby implementation is 10-60x slower than native implementations:
|
|
24
|
+
|
|
25
|
+
* LZMA encode: 13-15x slower
|
|
26
|
+
* LZMA decode: 8-10x slower
|
|
27
|
+
* BWT transform: 50-60x slower
|
|
28
|
+
|
|
29
|
+
This is an acceptable trade-off for maximum portability.
|
|
30
|
+
|
|
31
|
+
=== Installation
|
|
32
|
+
|
|
33
|
+
==== What Ruby version is required?
|
|
34
|
+
|
|
35
|
+
Ruby 3.0 or higher is required.
|
|
36
|
+
|
|
37
|
+
==== Does Omnizip work on JRuby?
|
|
38
|
+
|
|
39
|
+
Yes, Omnizip works on JRuby 9.4+.
|
|
40
|
+
|
|
41
|
+
==== Does Omnizip work on TruffleRuby?
|
|
42
|
+
|
|
43
|
+
Yes, Omnizip works on TruffleRuby 22+.
|
|
44
|
+
|
|
45
|
+
=== Usage
|
|
46
|
+
|
|
47
|
+
==== How do I compress a file?
|
|
48
|
+
|
|
49
|
+
[source,bash]
|
|
50
|
+
----
|
|
51
|
+
omnizip compress input.txt output.lzma
|
|
52
|
+
----
|
|
53
|
+
|
|
54
|
+
[source,ruby]
|
|
55
|
+
----
|
|
56
|
+
Omnizip.compress_file('input.txt', 'output.lzma')
|
|
57
|
+
----
|
|
58
|
+
|
|
59
|
+
==== How do I create an archive?
|
|
60
|
+
|
|
61
|
+
[source,bash]
|
|
62
|
+
----
|
|
63
|
+
omnizip archive create backup.7z documents/
|
|
64
|
+
----
|
|
65
|
+
|
|
66
|
+
[source,ruby]
|
|
67
|
+
----
|
|
68
|
+
writer = Omnizip::Formats::SevenZip::Writer.new('backup.7z')
|
|
69
|
+
writer.add_directory('documents/')
|
|
70
|
+
writer.close
|
|
71
|
+
----
|
|
72
|
+
|
|
73
|
+
==== How do I extract an archive?
|
|
74
|
+
|
|
75
|
+
[source,bash]
|
|
76
|
+
----
|
|
77
|
+
omnizip archive extract backup.7z output/
|
|
78
|
+
----
|
|
79
|
+
|
|
80
|
+
[source,ruby]
|
|
81
|
+
----
|
|
82
|
+
reader = Omnizip::Formats::SevenZip::Reader.new('backup.7z')
|
|
83
|
+
reader.extract_all('output/')
|
|
84
|
+
reader.close
|
|
85
|
+
----
|
|
86
|
+
|
|
87
|
+
==== What compression level should I use?
|
|
88
|
+
|
|
89
|
+
* **Levels 1-3**: Fast compression for temporary files
|
|
90
|
+
* **Levels 4-6**: Balanced speed/ratio for general use (default: 5)
|
|
91
|
+
* **Levels 7-9**: Maximum compression for storage
|
|
92
|
+
|
|
93
|
+
=== Compatibility
|
|
94
|
+
|
|
95
|
+
==== Can Omnizip extract 7-Zip archives?
|
|
96
|
+
|
|
97
|
+
Yes, Omnizip can extract archives created by 7-Zip.
|
|
98
|
+
|
|
99
|
+
==== Can Omnizip create ZIP files?
|
|
100
|
+
|
|
101
|
+
Yes, Omnizip can create ZIP files compatible with all ZIP tools.
|
|
102
|
+
|
|
103
|
+
==== Can Omnizip create RAR archives?
|
|
104
|
+
|
|
105
|
+
Yes, Omnizip can create RAR5 archives using pure Ruby implementation.
|
|
106
|
+
|
|
107
|
+
=== Performance
|
|
108
|
+
|
|
109
|
+
==== How can I speed up compression?
|
|
110
|
+
|
|
111
|
+
1. Use lower compression levels (--level 1-3)
|
|
112
|
+
2. Use faster algorithms (zstandard, deflate)
|
|
113
|
+
3. Enable parallel processing (--threads)
|
|
114
|
+
4. Use compression profiles for automatic selection
|
|
115
|
+
|
|
116
|
+
==== Why is compression slow?
|
|
117
|
+
|
|
118
|
+
Pure Ruby implementation prioritizes portability over performance. Native implementations are 10-60x faster but require platform-specific compilation.
|
|
119
|
+
|
|
120
|
+
=== Troubleshooting
|
|
121
|
+
|
|
122
|
+
==== Compression failed with "Algorithm not found"
|
|
123
|
+
|
|
124
|
+
Ensure the algorithm name is correct:
|
|
125
|
+
|
|
126
|
+
[source,bash]
|
|
127
|
+
----
|
|
128
|
+
omnizip list # See available algorithms
|
|
129
|
+
----
|
|
130
|
+
|
|
131
|
+
==== Archive extraction failed
|
|
132
|
+
|
|
133
|
+
Verify the archive is not corrupted:
|
|
134
|
+
|
|
135
|
+
[source,bash]
|
|
136
|
+
----
|
|
137
|
+
omnizip archive list archive.7z
|
|
138
|
+
----
|
|
139
|
+
|
|
140
|
+
Try different extraction options or check file integrity.
|
|
141
|
+
|
|
142
|
+
==== Out of memory error
|
|
143
|
+
|
|
144
|
+
For large files, consider:
|
|
145
|
+
|
|
146
|
+
1. Using chunked processing
|
|
147
|
+
2. Reducing compression level
|
|
148
|
+
3. Using faster algorithms
|
|
149
|
+
|
|
150
|
+
=== Advanced
|
|
151
|
+
|
|
152
|
+
==== How do I use filters?
|
|
153
|
+
|
|
154
|
+
[source,bash]
|
|
155
|
+
----
|
|
156
|
+
omnizip archive create binaries.7z app.exe --filters bcj_x86
|
|
157
|
+
----
|
|
158
|
+
|
|
159
|
+
[source,ruby]
|
|
160
|
+
----
|
|
161
|
+
writer = Omnizip::Formats::SevenZip::Writer.new('binaries.7z',
|
|
162
|
+
filters: [:bcj_x86]
|
|
163
|
+
)
|
|
164
|
+
----
|
|
165
|
+
|
|
166
|
+
==== How do I encrypt archives?
|
|
167
|
+
|
|
168
|
+
[source,bash]
|
|
169
|
+
----
|
|
170
|
+
omnizip archive create secure.7z data/ --password "PASSWORD"
|
|
171
|
+
----
|
|
172
|
+
|
|
173
|
+
[source,ruby]
|
|
174
|
+
----
|
|
175
|
+
writer = Omnizip::Formats::SevenZip::Writer.new('secure.7z',
|
|
176
|
+
password: 'PASSWORD'
|
|
177
|
+
)
|
|
178
|
+
----
|
|
179
|
+
|
|
180
|
+
=== See Also
|
|
181
|
+
|
|
182
|
+
* link:../getting-started/[Getting Started]
|
|
183
|
+
* link:../guides/[Usage Guides]
|
|
184
|
+
* link:../troubleshooting/[Troubleshooting]
|
|
185
|
+
* link:../resources/quick-reference[Quick Reference]
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Quick Reference
|
|
3
|
+
nav_order: 70
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
== Quick Reference
|
|
7
|
+
|
|
8
|
+
Cheat sheet for common Omnizip operations.
|
|
9
|
+
|
|
10
|
+
=== Command-Line Quick Reference
|
|
11
|
+
|
|
12
|
+
==== File Compression
|
|
13
|
+
|
|
14
|
+
[source,bash]
|
|
15
|
+
----
|
|
16
|
+
# Basic compression
|
|
17
|
+
omnizip compress INPUT OUTPUT
|
|
18
|
+
|
|
19
|
+
# With algorithm and level
|
|
20
|
+
omnizip compress INPUT OUTPUT --algorithm ALGORITHM --level N
|
|
21
|
+
|
|
22
|
+
# Pipe mode
|
|
23
|
+
cat INPUT | omnizip compress - OUTPUT
|
|
24
|
+
----
|
|
25
|
+
|
|
26
|
+
==== Archive Operations
|
|
27
|
+
|
|
28
|
+
[source,bash]
|
|
29
|
+
----
|
|
30
|
+
# Create archive
|
|
31
|
+
omnizip archive create OUTPUT INPUT...
|
|
32
|
+
|
|
33
|
+
# Extract archive
|
|
34
|
+
omnizip archive extract ARCHIVE [OUTPUT_DIR]
|
|
35
|
+
|
|
36
|
+
# List contents
|
|
37
|
+
omnizip archive list ARCHIVE
|
|
38
|
+
----
|
|
39
|
+
|
|
40
|
+
==== Common Options
|
|
41
|
+
|
|
42
|
+
`--algorithm`:: Compression algorithm (lzma, lzma2, bzip2, ppmd7, deflate, zstandard)
|
|
43
|
+
`--level N`:: Compression level (1-9)
|
|
44
|
+
`--verbose`, `-v`:: Verbose output
|
|
45
|
+
`--help`, `-h`:: Show help
|
|
46
|
+
|
|
47
|
+
=== Ruby API Quick Reference
|
|
48
|
+
|
|
49
|
+
==== Convenience Methods
|
|
50
|
+
|
|
51
|
+
[source,ruby]
|
|
52
|
+
----
|
|
53
|
+
# Compress file
|
|
54
|
+
Omnizip.compress_file('input.txt', 'output.lzma')
|
|
55
|
+
|
|
56
|
+
# Decompress file
|
|
57
|
+
Omnizip.decompress_file('output.lzma', 'restored.txt')
|
|
58
|
+
|
|
59
|
+
# Extract archive
|
|
60
|
+
Omnizip.extract_archive('archive.7z', 'output/')
|
|
61
|
+
|
|
62
|
+
# List archive
|
|
63
|
+
Omnizip.list_archive('archive.7z')
|
|
64
|
+
----
|
|
65
|
+
|
|
66
|
+
==== Registry Methods
|
|
67
|
+
|
|
68
|
+
[source,ruby]
|
|
69
|
+
----
|
|
70
|
+
# Get algorithm
|
|
71
|
+
algorithm = Omnizip::AlgorithmRegistry.get(:lzma2).new(level: 9)
|
|
72
|
+
|
|
73
|
+
# Get format writer
|
|
74
|
+
writer = Omnizip::FormatRegistry.get(:seven_zip).new_writer('archive.7z')
|
|
75
|
+
----
|
|
76
|
+
|
|
77
|
+
=== Compression Algorithm Quick Reference
|
|
78
|
+
|
|
79
|
+
[cols="1,1,2,2"]
|
|
80
|
+
|===
|
|
81
|
+
|Algorithm |Option |Speed |Best For
|
|
82
|
+
|
|
83
|
+
|LZMA
|
|
84
|
+
|--algorithm lzma
|
|
85
|
+
|Slow
|
|
86
|
+
|Maximum compression
|
|
87
|
+
|
|
88
|
+
|LZMA2
|
|
89
|
+
|--algorithm lzma2 (default)
|
|
90
|
+
|Slow
|
|
91
|
+
|Archives, backups
|
|
92
|
+
|
|
93
|
+
|BZip2
|
|
94
|
+
|--algorithm bzip2
|
|
95
|
+
|Medium
|
|
96
|
+
|Text files
|
|
97
|
+
|
|
98
|
+
|PPMd7
|
|
99
|
+
|--algorithm ppmd7
|
|
100
|
+
|Medium
|
|
101
|
+
|Text, documents
|
|
102
|
+
|
|
103
|
+
|Deflate
|
|
104
|
+
|--algorithm deflate
|
|
105
|
+
|Fast
|
|
106
|
+
|Compatibility
|
|
107
|
+
|
|
108
|
+
|Zstandard
|
|
109
|
+
|--algorithm zstandard
|
|
110
|
+
|Very Fast
|
|
111
|
+
|Speed-sensitive
|
|
112
|
+
|===
|
|
113
|
+
|
|
114
|
+
=== Compression Level Quick Reference
|
|
115
|
+
|
|
116
|
+
[cols="1,1,2"]
|
|
117
|
+
|===
|
|
118
|
+
|Level |Option |Use Case
|
|
119
|
+
|
|
120
|
+
|1
|
|
121
|
+
|--level 1
|
|
122
|
+
|Fastest, temporary files
|
|
123
|
+
|
|
124
|
+
|3
|
|
125
|
+
|--level 3
|
|
126
|
+
|Fast, frequent operations
|
|
127
|
+
|
|
128
|
+
|5
|
|
129
|
+
|--level 5 (default)
|
|
130
|
+
|Balanced, general use
|
|
131
|
+
|
|
132
|
+
|7
|
|
133
|
+
|--level 7
|
|
134
|
+
|High compression, storage
|
|
135
|
+
|
|
136
|
+
|9
|
|
137
|
+
|--level 9
|
|
138
|
+
|Maximum compression
|
|
139
|
+
|===
|
|
140
|
+
|
|
141
|
+
=== Archive Format Quick Reference
|
|
142
|
+
|
|
143
|
+
[cols="1,2,2"]
|
|
144
|
+
|===
|
|
145
|
+
|Format |Extension |Best For
|
|
146
|
+
|
|
147
|
+
|7z
|
|
148
|
+
|.7z
|
|
149
|
+
|Maximum compression, solid archives
|
|
150
|
+
|
|
151
|
+
|ZIP
|
|
152
|
+
|.zip
|
|
153
|
+
|Cross-platform compatibility
|
|
154
|
+
|
|
155
|
+
|RAR4/RAR5
|
|
156
|
+
|.rar
|
|
157
|
+
|Binary distribution, multi-volume
|
|
158
|
+
|
|
159
|
+
|TAR
|
|
160
|
+
|.tar
|
|
161
|
+
|Unix backups
|
|
162
|
+
|
|
163
|
+
|GZIP
|
|
164
|
+
|.gz
|
|
165
|
+
|Single file compression
|
|
166
|
+
|
|
167
|
+
|XZ
|
|
168
|
+
|.xz
|
|
169
|
+
|System packages
|
|
170
|
+
|===
|
|
171
|
+
|
|
172
|
+
=== Common Patterns
|
|
173
|
+
|
|
174
|
+
==== Backup Script
|
|
175
|
+
|
|
176
|
+
[source,bash]
|
|
177
|
+
----
|
|
178
|
+
#!/bin/bash
|
|
179
|
+
DATE=$(date +%Y%m%d)
|
|
180
|
+
omnizip archive create "backup_${DATE}.7z" \
|
|
181
|
+
documents/ projects/ \
|
|
182
|
+
--level 7 --solid
|
|
183
|
+
----
|
|
184
|
+
|
|
185
|
+
==== Batch Compression
|
|
186
|
+
|
|
187
|
+
[source,bash]
|
|
188
|
+
----
|
|
189
|
+
for file in *.txt; do
|
|
190
|
+
omnizip compress "$file" "${file}.lzma" --level 5
|
|
191
|
+
done
|
|
192
|
+
----
|
|
193
|
+
|
|
194
|
+
==== Ruby Backup Script
|
|
195
|
+
|
|
196
|
+
[source,ruby]
|
|
197
|
+
----
|
|
198
|
+
require 'omnizip'
|
|
199
|
+
require 'time'
|
|
200
|
+
|
|
201
|
+
timestamp = Time.now.strftime('%Y%m%d')
|
|
202
|
+
archive_name = "backup_#{timestamp}.7z"
|
|
203
|
+
|
|
204
|
+
writer = Omnizip::Formats::SevenZip::Writer.new(archive_name,
|
|
205
|
+
level: 7,
|
|
206
|
+
solid: true
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
%w[documents projects].each do |dir|
|
|
210
|
+
writer.add_directory(dir) if Dir.exist?(dir)
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
writer.close
|
|
214
|
+
puts "Created #{archive_name}"
|
|
215
|
+
----
|
|
216
|
+
|
|
217
|
+
=== See Also
|
|
218
|
+
|
|
219
|
+
* link:../getting-started/quick-start[Quick Start Guide]
|
|
220
|
+
* link:../guides/basic-usage/[Basic Usage Guides]
|
|
221
|
+
* link:../reference/cli/[CLI Reference]
|
|
222
|
+
* link:../reference/api/[API Reference]
|
|
File without changes
|