On Tuesday, 19 May 2015 at 12:31:15 UTC, Dejan Lekic wrote:
We need two things actually:
1) compress package with set of commonly used compression
algorithms.
std.alg.compress comes to mind as package name.
A compression package would certainly be useful as the number of
supported archives grows.
2) VFS module/package with set of interfaces and reference
implementations for as many formats as possible.
3) It would be extremely useful to have something like Java SPI
(http://en.wikipedia.org/wiki/Service_provider_interface) in D.
All the VFS implementations would then follow this standard and
give us truly runtime-replaceable components. More about this:
http://resources.sei.cmu.edu/asset_files/TechnicalNote/2002_004_001_13958.pdf
I imagine a VFS interface and an interface for file-based
archives like Zip/Tar/7z would be fairly similar. Support for
virtual filesystems could probably be implemented as part of the
archive package.
WRT runtime replaceability, the defining of a single set of
exceptions (without making them too specific) for all std.archive
submodules should help. The fact that there aren't any "standard"
exceptions seems to come up a fair bit (DIP33, for example).