# ZipTools-for-Clarion – Modern ZIP/UNZIP for Clarion (multi-threaded ZIP, progress, password support)

**URL:** <https://clarionhub.com/t/ziptools-for-clarion-modern-zip-unzip-for-clarion-multi-threaded-zip-progress-password-support/8632>\
**Category:** Announcements\
**Tags:** open-source, zip, unzip, compression\
**Created:** [September 23, 2025, 6:05pm UTC](https://clarionhub.com/t/ziptools-for-clarion-modern-zip-unzip-for-clarion-multi-threaded-zip-progress-password-support/8632 "2025-09-23T18:05:37Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mark\_Sarson](https://clarionhub.com/user_avatar/clarionhub.com/mark_sarson/32/6132_2.png) [@Mark\_Sarson](https://clarionhub.com/u/Mark_Sarson)\
**Post date:** [September 23, 2025, 6:05pm UTC](https://clarionhub.com/t/ziptools-for-clarion-modern-zip-unzip-for-clarion-multi-threaded-zip-progress-password-support/8632/1 "2025-09-23T18:05:37Z")

</div>

## ZipTools-for-Clarion 🗜

> ⚠ **Update (v1.2.0, released 2025-09-24): Breaking Changes**  
> Since the original v1.0.0 release yesterday, we’ve shipped v1.1.0 and v1.2.0.
> 
> - v1.1.0 – added dynamic DLL loading, Clarion template integration, and install script.
> - v1.2.0 – **renamed `CZipClass` → `ZipToolsClass` and related types** (`ZipQ` → `ZipQueueType`, `ZipOptions` → `ZipOptionsType`, etc.).
> 
> If you tried the original `CZipClass` examples, please update your code to use `ZipToolsClass`.  
> Full details: [CHANGELOG](https://github.com/msarson/ZipTools-for-Clarion/blob/master/CHANGELOG.md).

* * *

Following on from [Marcelo\_Sanseau’s original post and discussion](https://clarionhub.com/t/zip-unzip-options-within-an-app/6805?utm_source=chatgpt.com), a new open-source library is now available: **[ZipTools-for-Clarion](https://github.com/msarson/ZipTools-for-Clarion?utm_source=chatgpt.com)**.

### Key features

- **Multi-threaded ZIP creation** for fast compression of large or many files
- **Improved UNZIP support** (single-threaded, added where the original had none)
- **Progress reporting** — much requested in the earlier ClarionHub thread
- **Adaptive compression strategies** (chooses best level for each file type/size)
- **Password-protected archives**
- **Flexible overwrite behaviour** (ask, silent, overwrite, append)
- **Folder zipping** with or without base paths preserved
- **Robust error handling**
- **Powered by zlib** — proven, cross-platform compression library used in countless systems

### Why it matters

Earlier solutions like LSZip and ClarionZipClass had speed, stability, and feature limitations. This project brings a faster, more reliable, and feature-rich option for integrating ZIP/UNZIP directly into Clarion applications — while leveraging the rock-solid **zlib** compression engine.

### Links

- GitHub repo: [ZipTools-for-Clarion](https://github.com/msarson/ZipTools-for-Clarion?utm_source=chatgpt.com)
- License: MIT

### Feedback & Contributions

Feedback, testing, and improvements are very welcome:

- **Fork the repo** and submit pull requests
- **Open issues** on GitHub for bugs, enhancements, or ideas
- Contributions of any size (docs, code, testing) are appreciated

* * *

### Example usage

**Creating a ZIP file:**

```clarion
MyZip ZipToolsClass
FileQ ZipQueueType
ZipOpts LIKE(ZipOptionsType)

ZipOpts.ZipName = 'C:\Output\MyArchive.zip'
ZipOpts.ShowProgress = TRUE
ZipOpts.Threads = 8
ZipOpts.Overwrite = CZ_ZIP_OVERWRITE_ASK

IF MyZip.CreateZipFile(FileQ, ZipOpts) = 0
  MESSAGE('ZIP file created successfully')
ELSE
  MESSAGE('Error: ' & MyZip.Errors.GetErrorMessage())
END

```

**Extracting:**

```clarion
MyZip ZipToolsClass
UnzipOpts LIKE(UnzipOptionsType)

UnzipOpts.ZipName = 'C:\Input\Archive.zip'
UnzipOpts.OutputFolder = 'C:\Output\ExtractedFiles'
UnzipOpts.ShowProgress = TRUE
UnzipOpts.Overwrite = UZ_OVERWRITE_SILENT

IF MyZip.ExtractZipFile(UnzipOpts) = 0
  MESSAGE('ZIP file extracted successfully')
ELSE
  MESSAGE('Error: ' & MyZip.Errors.GetErrorMessage())
END

```

* * *

This way:

- New readers immediately see the **correct class and type names**.
- Existing readers who saw “CZipClass” yesterday won’t be left confused.
- You link out to the CHANGELOG for the full breakdown.

Do you want me to also prep a **short Discord/Twitter-style announcement blurb** that just highlights the breaking rename (for anyone who saw `CZipClass` yesterday)?

---

<div class="post-metadata">

**Author:** ![Mark\_Sarson](https://clarionhub.com/user_avatar/clarionhub.com/mark_sarson/32/6132_2.png) [@Mark\_Sarson](https://clarionhub.com/u/Mark_Sarson)\
**Post date:** [September 24, 2025, 2:17pm UTC](https://clarionhub.com/t/ziptools-for-clarion-modern-zip-unzip-for-clarion-multi-threaded-zip-progress-password-support/8632/2 "2025-09-24T14:17:40Z")

</div>

🚀 **ZipTools for Clarion – v1.1.0 released**

Quick update: I’ve just pushed **v1.1.0** of ZipTools for Clarion.

**What’s new:**

- 🔄 **Dynamic loading** of `zlibwapi.dll` and `zlib1.dll` at runtime (no static linking headaches).
- 🧩 **Clarion template (ZipTools.tpl)** for simple integration.
- 📂 **InstallZipTools.bat** to copy everything into your Clarion environment.
- 📖 Added developer resource details to `zlibwapi.dll`.

**Improvements:**

- Updated docs to reflect the new setup.
- More robust DLL handling → avoids conflicts with other libraries.

If you’ve already tried v1.0.0, this should make life easier — especially when deploying to different environments.

👉 Repo: [ZipTools-for-Clarion on GitHub](https://github.com/msarson/ZipTools-for-Clarion)
