WIMLIB is an open source project and you will be working with the latest stable version, updating that version as described, and contributing the work back to the open source community (please price your offers accordingly).
WIMLIB is a library used to manipulate Windows IMage (WIM) files, which are similar to archive files like ZIP and 7ZIP.
While "in-place" updates to a WIM file are possible, these are all done via "appending" data, and never by replacing data already found inside the WIM. So when you delete a file inside a WIM archive, the WIM file is not "truncated" at the proper places to recover space from that deleted file. Similarly, when you update a file inside a WIM archive, the old WIM file data for that file is not overwritten with new data; instead a new copy of the file data is appended to the end of the WIM archive, with space wasted from the original, now obsolete copy of the file inside the archive.
Therefore, your project will be enhancing the wimlib_update_image() API exported by WILIB, which currently makes "in-place" updates to WIM files (via appending), to make true in-place updates to WIM files by:
1) Removing file data when a file is deleted from a WIM archive, reducing the archive size in-place, WITHOUT rebuilding the archive or by creating a temporary copy of it anywhere, instead by "sliding down" all the data to fill the hole.
2) Similarly, when a file is updated inside a WIM archive, updating the existing file data instead of appending new data to the end of the WIM archive, and where the new file is smaller than the old file, reclaiming the "hole" inside the archive using a technique like in #1 above; of course updates to files where the new file is larger than the old file must also be supported and work properly (by "sliding data" as necessary).
Your solution must be built with an eye towards performance as fast as possible.
Your solution must work on very large WIM files (such as files measuring hundreds of gigabytes), without requiring any extra temporary space above and over what is already allocated inside the WIM file and the extra compressed space necessary to store any new data after the "holes" inside the original WIM file have been filled and/or truncated as necessary.
The latest production WIMLIB sources are attached. You may also visit the project website for further information. Please Note: This is a third-party request NOT affiliated with the original project (but again, your work will be donated back to the original project).
Your solution will be validated on Windows systems only, so you may feel free to drop Linux support for in-place updates if it helps cut development time and costs.
Décerné à :
I've read your description carefully. Best expertise in C/C++ and OS program. I am very interested on your project. Looking forward to be hired from you. Thanks.