- Installation preparation time has been drastically cut down if many (>10000) files are to be installed. Previously, a lot of time was spent identifying unique paths to create all directories, which has been reduced by more than an order of magnitude.
- Progress reporting is now solely based on fetch progress. This optimizes for the default case where progress is dominated by fetching changed contents. In that case, the progress will be 100% accurate and reflect exactly what is written on disk. In cases where an installation mostly consists of duplication, the progress will not be updated while files are duplicated. Renames are treated as new content fetching.
- The packed repository deployment backend is now multithreaded. It will overlap reading data, decompressing, and writing data. For network sources, this means that downloads will happen concurrently with everything else, and installations should finish as soon as the data download has finished.
- On Windows, the sample UI now shows the progress in the task bar.
- Updated SQLite from 3.16.1 to 3.19.2.
This release contains a breaking change of the file format. Kyla 1.0 will fail to open a package created with Kyla 2.0 and vice versa.
Changed database format for improved forward compatibility.
kyla uses now a feature-based definition instead of the previous file-set centric approach. This changes both the database structure, as well as the repository definition structure.
The Python generator has been rewritten.
kuisample UI has been rewritten, and kyla learned how to provide UI related information.
Zstd compression is available as an alternative to the default Brotli compression.
KYLA_MAKE_API_VERSIONmacro has been fixed.
The repository builder can print out various statistics now, for instance, the final compression ratio.
kyla supports file content encryption.
The encryption only encrypts the file contents, so file names, sizes, and even the hashes of the content will remain visibile. In particular, the database itself is not encrypted.