Changelog
Source:NEWS.md
zip 3.0.0
CRAN release: 2026-06-10
zip(),zipr(),zip_append(),zipr_append(),zip_process(), andunzip()/unzip_process()now support password-protected archives using WinZIP AES-256, and other encryption schemes (#38).zip_list()now reports anencryptioncolumn indicating the encryption scheme used for each entry (#38).unzip()is now vectorized. If all arguments apart fromzipfile,exdirandpasswordare the default, then it unprocesses all files concurrently, using a thread pool. The size of the thread pool can be set with thezip_threadsoption or theZIP_THREADSenvironment variable (#147).zip_list()andunzip()now work directly onhttp://andhttps://URLs. They use HTTP range requests to download only the central directory and the requested entries, so listing or extracting a few files from a large remote archive does not downloads the whole file. If the server does not support range requests, they fall back to downloading the entire archive (with a warning). This requires the curl package (#39).zip_list()andunzip()now report the Unix permission bits stored in an archive on Windows as well. Previously they always reported700/600on Windows, regardless of the permissions recorded in the ZIP file.zip_list()andunzip()now reporttype == "directory"for directory entries whose Unix mode bits lackS_IFDIRbut that are marked as directories by a trailing slash or the DOS directory attribute (e.g. archives created byzip()itself). Previously these were reported as"file".zip()andunzip()now show a progress bar when theclipackage is installed. Forzip(), progress is byte-level, so large single files are tracked smoothly. Forunzip(), progress advances once per extracted entry. Progress bars are (for now) opt-in via theZIP_PROGRESS=trueenvironment variable or thezip.progressoption (#48).unzip()now returns a data frame (invisibly) with one row per extracted entry, containing the same columns aszip_list()(filename,compressed_size,uncompressed_size,timestamp,permissions,crc32,offset,type) plus apathcolumn with the absolute path to each extracted file on disk (#35).zip_list()andunzip()now have anencodingargument for ZIP files with non-UTF-8, non-CP437 filenames (e.g. CP932/Shift-JIS on Japanese Windows). Whenencodingis set, filenames without the UTF-8 flag are decoded from the specified code page instead of CP437 (#101).zip_append()andzipr_append()now replace existing entries when appending a file whose archive path already exists in the zip file, instead of creating duplicate entries (#111).unzip()andzip_list()now correctly handle ZIP files with non-UTF-8 filenames (e.g. filenames encoded in IBM CP437, as created by many Windows tools). The filenames are converted to UTF-8 using the CP437 character map when the UTF-8 flag is not set in the ZIP entry (#103).New
keysargument tozip(),zipr(),zip_append(), andzipr_append(). It allows specifying custom paths for entries inside the archive, independently of their paths on disk (#50).unzip_process()now probes falls back to using an R subprocess when the bundledcmdunzipexecutable cannot be started (#135).Updated embedded miniz to version 3.1.1 (#122).
zip 2.3.3
CRAN release: 2025-05-13
zip_list()now has atypecolumn, for the file type.unzip()now correctly creates symbolic links on Unix (#127).
zip 2.3.2
CRAN release: 2025-02-01
-
zip_list()now returns atblobject, and loads the pillar package, if installed, to produce the nicer output for long data frames.
zip 2.3.1
CRAN release: 2024-01-27
- The zip shared library now hides its symbols (on platforms that support this), to avoid name clashes with other libraries (#98).
zip 2.3.0
CRAN release: 2023-04-17
zip now handles large zip files on Windows (#65, #75, #79, @weshinsley).
zip now behaves better for absolute paths in mirror mode, and when the paths contain a
:character (#69, #70).zip::unzip()now uses the process’s umask value (seeumask(2)) on Unix if the zip file does not contain Unix permissions (#67).Fix segmentation fault when zip file can’t be created (#91, @zeehio)
Fix delayed evaluation error on zipfile when
zip::zip()is used (#92, @zeehio)New
deflate()andinflate()functions to compress and uncompress GZIP streams in memory.