I tinkered with writing a WZ file parser (check re-wz) and making it efficient and robust is basically reinventing the wheel as there are robust archive file formats such as tar. Furthermore, most existing WZ file implementations have problems (slow, each implementing their own slightly alternated version of the format, not very robust as in single byte change can destroy the whole file, etc.) on their own and none is deterministic which IMO can lead to huge problems.
The planned progression is that the server use tar archives over the stored image files for now. I got a small POC wz -> tar converter running so far and using It for the Map data. However, for my part, I'm also not really happy with the format of the image files.
Before continuing porting to another format, It has to be evaluated if the Client can support a custom file format. When finishing the C-Header part for #3 this will include basic tracing support for IWzFileSystem and hopefully allows evaluating how a custom format would have to be implemented. Another big problem is that It heavily relies on the COM API(ComVariant) which is not 'well'-supported by the Windows Rust binding so far. So might wait on this front first.
I tinkered with writing a WZ file parser (check re-wz) and making it efficient and robust is basically reinventing the wheel as there are robust archive file formats such as tar. Furthermore, most existing WZ file implementations have problems (slow, each implementing their own slightly alternated version of the format, not very robust as in single byte change can destroy the whole file, etc.) on their own and none is deterministic which IMO can lead to huge problems.
The planned progression is that the server use tar archives over the stored image files for now. I got a small POC wz -> tar converter running so far and using It for the Map data. However, for my part, I'm also not really happy with the format of the image files.
Before continuing porting to another format, It has to be evaluated if the Client can support a custom file format. When finishing the C-Header part for #3 this will include basic tracing support for IWzFileSystem and hopefully allows evaluating how a custom format would have to be implemented. Another big problem is that It heavily relies on the COM API(ComVariant) which is not 'well'-supported by the Windows Rust binding so far. So might wait on this front first.