v2.0.0
What's Changed
Komac has been fully rewritten in Rust! Because of this, Komac v2 is incompatible with Komac v1. If you have Komac v1 installed, please uninstall it before installing Komac v2.
Please open an issue if you experience any issues or inconsistencies. While Komac has worked really well for me, it's difficult to test all the many edge cases with how many different applications and manifests there can be.
Cross-platform
Komac is 100% cross-platform. Unlike other tools, Komac works perfectly on Windows, Linux and macOS. This is especially helpful for GitHub release workflows as ubuntu-latest
can be used.
Despite WinGet being a Windows tool, Komac means that anyone using any operating system can contribute a package or version update to it.
Standalone
Komac is now fully standalone! As of this release, the uncompressed x64 portable binary stands at just ~7.5mb and doesn't require runtimes like the JVM. The Windows installers add Komac to path (allowing you to just run komac
in a terminal) and stand at less than 3.5mb.
Memory usage
Komac uses a very small amount amount of memory and has been heavily optimised to minimise memory usage (especially heap allocations). Updating Android Studio (a 1GB+ binary) on my machine consistently took just ~3.5mb memory.
Disk usage
Komac only writes the downloaded file to the system's temporary directory and deletes it as soon as it's no longer needed. Even if Komac were to crash or if CTRL+C is pressed, the file will still get deleted as the deletion is managed by the operating system rather than Komac.
Komac also makes use of file-backed memory maps when reading the binary in order so that embedded data doesn't need to be unpacked, extracted or wholly read into memory.
Inno installers
Komac now has a significantly more accurate way of checking if an installer was created with Inno setup instead of just checking for some magic bytes.
Nullsoft installers
As with Inno installers, Komac now has a much more accurate way of checking if an installer was created with NSIS.
Usage changes:
URLs are now delimited by a space rather than a comma when updating manifests:
komac update -i Package.Identifier -v 1.2.3 --urls https://www.firstUrl.com https://www.secondUrl.com
Full Changelog: v1.11.0...v2.0.0