Skip to content

Releases: Snesnopic/chisel

v1.4.1

12 Apr 18:55

Choose a tag to compare

Minor release focused on reliability.

What’s New

  • Fixed file‑saving bug on Apple platforms
    Resolved an issue that could cause failed saves on Apple platforms when writing files.
  • macOS x64 now builds with clang
    The x64 macOS build now uses clang instead of GCC.
    Previously, GCC was required due to the lack of std::jthread and std::stop_token in the clang toolchain on macOS x64. The thread pool has been rewritten to remove this dependency.
  • Refactor of the zopflipng processor
    The processor has been cleaned up a bit, as it could very rarely crash sometimes.

macOS: removing the Gatekeeper quarantine

When downloading binaries from the internet, macOS automatically marks them as “quarantined”.
If you try to run chsl and macOS shows a warning like:

“chsl cannot be opened because it is from an unidentified developer”

…you need to remove the quarantine attribute manually.

How to remove the quarantine flag
Open Terminal in the folder where you downloaded chsl and run:

xattr -d com.apple.quarantine ./chsl

To verify that the quarantine flag is gone:

xattr ./chsl

If com.apple.quarantine no longer appears, you're good to go.
Now you can run:

./chsl ...

Note
This issue does not occur if you compile chsl yourself.

Nightly Build

18 Apr 22:23

Choose a tag to compare

Nightly Build Pre-release
Pre-release

Latest successful build from 'development' branch. Not a stable release.

v1.4.0

28 Mar 09:54

Choose a tag to compare

Major feature release bringing a massive expansion to format support, FreeBSD compatibility, and stability improvements. This release focuses heavily on optimizing niche and legacy formats and shrinking the binary size.

What's New

  • Massive format expansion: Introduced dedicated processors for a lot of new formats. Most of these are available thanks to Leanify.
    • Audio & Media: TTA, DSF, DSDIFF, ASF, Musepack (MPC), and SWF.
    • Images & Fonts: Windows Icon (ICO), Apple Icon (ICNS), WOFF, WOFF2.
    • Archives: LZMA, Zstd, BZip2, Brotli (the first 3 were already in chisel, they have been decoupled from ArchiveProcessor)
    • Proprietary: Tencent GFT (Image Container) and RDB (Resource DB).
    • Documents: CFBF (Legacy Office / MSI) on Windows, based on Papa's Best CFBF Optimizer.
  • FreeBSD Support: chisel is now compatible with FreeBSD.
  • Smaller binaries: LTO and code stripping enabled by default once again, so smaller binaries and maybe better performance.
  • MKV attachment optimization: Updated taglib, enabling mkvprocessor to parse and optimize internal attachments within MKV and WebM containers.
  • Bug fixes:
    • Fixed a bug in the ProcessorExecutor where a finalized container would sometimes be replaced even if the optimized version wasn't strictly smaller than the original.
    • Resolved a CLI issue where finalized containers were sometimes not properly logged.
  • Apple framework: The compiled .xcframework is now available as a release asset.
  • Dependency updates: Updated internal libraries, including a newer version of sqlite3.

macOS: removing the Gatekeeper quarantine

When downloading binaries from the internet, macOS automatically marks them as “quarantined”.
If you try to run chsl and macOS shows a warning like:

“chsl cannot be opened because it is from an unidentified developer”

…you need to remove the quarantine attribute manually.

How to remove the quarantine flag
Open Terminal in the folder where you downloaded chsl and run:

xattr -d com.apple.quarantine ./chsl

To verify that the quarantine flag is gone:

xattr ./chsl

If com.apple.quarantine no longer appears, you're good to go.
Now you can run:

./chsl ...

Note
This issue does not occur if you compile chsl yourself.

v1.3.0

20 Mar 21:51

Choose a tag to compare

Major house cleaning release focused on streamlining the build process for chisel and libchisel, expanding platform compatibility, and improving the developer API.

What's New

  • Build system & compiler flags: Introduced Unity builds to improve performance and reduce final binary size. The build process is now faster and more modular. Default LTO and strict compiler flags have been disabled, ensuring you are not forced into specific configurations when compiling chisel or libchisel from source.
  • C++20 standard: Lowered the compiler standard requirement to C++20 (as no C++23 features were actively utilized), improving compatibility for different toolchains.
  • Windows Magic file detection: Now fully integrated into the Windows binary. The magic file is automatically regenerated when missing, matching the behavior already present on other platforms.
  • libchisel API improvements: Polished the interface for better usability. Added destination to FileProcessCompleteEvent, expanded the payload for ContainerFinalizeCompleteEvent, and simplified EncodeMode enum handling. Fixed a bug that triggered duplicate events for completed files.
  • Apple ecosystem expansion: libchisel can now be built as an .xcframework, compatibile with ALL Apple devices (iOS, iPadOS, VisionOS, tvOS, WatchOS and each respective simulator). Additionally, macOS arm64 targets are now compiled with macOS 15, meaning binaries have native support for Sequoia.
  • libdeflate integration: libdeflate is now compiled directly by chisel. This allows libtiff to leverage deflate natively, yielding improved compression ratios.
  • Optional integrations: Rust and MKV-related components have been decoupled and are now optional build targets.
  • Improved miniSEED: miniSEED processor is now safer and yields better compression on miniSEED2 files.
  • Dependency updates: Updated internal libraries for gifsicle, libmseed, and sqlite3.
  • Logging: Locale settings are now correctly captured and reflected in the logs.

macOS: removing the Gatekeeper quarantine

When downloading binaries from the internet, macOS automatically marks them as “quarantined”.
If you try to run chsl and macOS shows a warning like:

“chsl cannot be opened because it is from an unidentified developer”

…you need to remove the quarantine attribute manually.

How to remove the quarantine flag
Open Terminal in the folder where you downloaded chsl and run:

xattr -d com.apple.quarantine ./chsl

To verify that the quarantine flag is gone:

xattr ./chsl

If com.apple.quarantine no longer appears, you're good to go.
Now you can run:

./chsl ...

Note
This issue does not occur if you compile chsl yourself.

v1.2.0

05 Mar 13:01

Choose a tag to compare

Major feature release introducing basic XML processor and some more configurations.

What's New

  • XML support: Added support for XML-related files (.xml, .svg, .xhtml, .kml, .gpx, .dae, .rss, .atom, .xml) across all platform, both minifying the file and extracting its embedded files, via pugixml.
  • Zopfli configuration: Processors that internally use Zopfli to compress (ZopfliPngProcessor, OOXMLProcessor, , ODFProcessor, PDFProcessor) can now specify the amount of iterations to try and increase compression through the flags --iterations and --iterations-large (used for 'large' images). Default values are 15 and 5, respectively (the same values that were used before).
  • FlexiGif configuration: FlexiGif's amount of tokens for recompression can now be specified with --max-tokens. Default value is 10000 (same value that was used before).
  • Better MIME detection: MIME type detection for systems that support it should be faster and more reliable now.

macOS: removing the Gatekeeper quarantine

When downloading binaries from the internet, macOS automatically marks them as “quarantined”.
If you try to run chsl and macOS shows a warning like:

“chsl cannot be opened because it is from an unidentified developer”
…you need to remove the quarantine attribute manually.

How to remove the quarantine flag
Open Terminal in the folder where you downloaded chsl and run:

xattr -d com.apple.quarantine ./chsl

To verify that the quarantine flag is gone:

xattr ./chsl

If com.apple.quarantine no longer appears, you're good to go.
Now you can run:

./chsl ...

Note
This issue does not occur if you compile chsl yourself.

v1.1.0

22 Feb 13:41

Choose a tag to compare

Major feature release introducing new audio formats, enhanced compression profiles, and quality-of-life improvements.

What's New

  • Executable renamed: The main binary has been renamed from chisel to chsl.
  • OGG Vorbis support: Added full support for lossless OGG Vorbis recompression across all platforms, via OptiVorbis.
  • MP3 support: Added support for MP3 optimization (for now available on macOS and Linux only), via mp3packer.
  • Improved FLAC & WavPack compression: Upgraded WavPack to use extra compression mode and xmode 6. Enhanced FLAC encoding by expanding apodization window functions and increasing residual partition orders to achieve better compression ratios.
  • Hierarchical logging: The logging system has been completely redesigned into a detailed, cascading level-based architecture (ALL, DEBUG, INFO, WARNING, ERROR, OFF).
  • Enhanced progress bar: The terminal progress bar now dynamically displays the number of files currently being processed.
  • Automatic magic database: The --regenerate-magic flag has been removed. Magic file generation is now handled automatically.

macOS: removing the Gatekeeper quarantine

When downloading binaries from the internet, macOS automatically marks them as “quarantined”.
If you try to run chsl and macOS shows a warning like:

“chsl cannot be opened because it is from an unidentified developer”
…you need to remove the quarantine attribute manually.

How to remove the quarantine flag
Open Terminal in the folder where you downloaded chsl and run:

xattr -d com.apple.quarantine ./chsl

To verify that the quarantine flag is gone:

xattr ./chsl

If com.apple.quarantine no longer appears, you're good to go.
Now you can run:

./chsl ...

Note
This issue does not occur if you compile chsl yourself.

v1.0.1

24 Dec 17:36

Choose a tag to compare

First maintenance release addressing CLI behavior and logging.

What's New

  • Fixed -o (output) behavior: The -o flag now correctly supports renaming single files. Previously, it incorrectly treated the output path as a directory in single-file mode.
  • New --log-file option: Added a specific flag to write logs to a file (e.g., --log-file chisel.log). Chisel no longer creates a chisel.log file in the working directory by default.
  • Logging improvements: The default log level has been corrected to ERROR to reduce console noise.
  • Version reporting: Fixed the output of --version to correctly display the release number.

If you're having problems on Linux/macOS, run chisel with --regenerate-magic.

macOS: removing the Gatekeeper quarantine
When downloading binaries from the internet, macOS automatically marks them as “quarantined”.
If you try to run chisel and macOS shows a warning like:

“chisel cannot be opened because it is from an unidentified developer”

…you need to remove the quarantine attribute manually.

How to remove the quarantine flag
Open Terminal in the folder where you downloaded chisel and run:

xattr -d com.apple.quarantine ./chisel

To verify that the quarantine flag is gone:

xattr ./chisel

If com.apple.quarantine no longer appears, you're good to go.
Now you can run:

./chisel ...

Note
This issue does not occur if you compile chisel yourself.

v1.0.0

18 Dec 20:30

Choose a tag to compare

First release! Most formats should work pretty well.
If you're having problems on Linux/macOS, run chisel with --regenerate-magic.

Known issues

  1. The -o option is broken when used in single‑file processing.
  2. The default logging level is WARNING instead of ERROR.

macOS: removing the Gatekeeper quarantine

When downloading binaries from the internet, macOS automatically marks them as “quarantined”.
If you try to run chisel and macOS shows a warning like:

“chisel cannot be opened because it is from an unidentified developer”

…you need to remove the quarantine attribute manually.

How to remove the quarantine flag

Open Terminal in the folder where you downloaded chisel and run:

xattr -d com.apple.quarantine ./chisel

To verify that the quarantine flag is gone:

xattr ./chisel

If com.apple.quarantine no longer appears, you're good to go.

Now you can run:

./chisel ...

Note
This issue does not occur if you compile chisel yourself.