]> wimlib.net Git - wimlib/blobdiff - README
xml.c: Simplify image statistics calculation
[wimlib] / README
diff --git a/README b/README
index 453a8c08f44a5585ca602910dc8137b63d652ae5..786ded7c7ff18dca51046b7ab8f5bca392a53e46 100644 (file)
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
                                   INTRODUCTION
 
                                   INTRODUCTION
 
-This is wimlib version 1.7.2 (October 2014).  wimlib is a C library for
+This is wimlib version 1.8.1-BETA (April 2015).  wimlib is a C library for
 creating, modifying, extracting, and mounting files in the Windows Imaging
 Format (WIM files).  wimlib and its command-line frontend 'wimlib-imagex'
 provide a free and cross-platform alternative to Microsoft's WIMGAPI, ImageX,
 creating, modifying, extracting, and mounting files in the Windows Imaging
 Format (WIM files).  wimlib and its command-line frontend 'wimlib-imagex'
 provide a free and cross-platform alternative to Microsoft's WIMGAPI, ImageX,
@@ -65,31 +65,26 @@ commands and their syntax.  For additional documentation:
                                 COMPRESSION RATIO
 
 wimlib (and wimlib-imagex) can create XPRESS, LZX, or LZMS compressed WIM files.
                                 COMPRESSION RATIO
 
 wimlib (and wimlib-imagex) can create XPRESS, LZX, or LZMS compressed WIM files.
-wimlib includes its own compression codecs and does not use the compression API
-available on some versions of Windows.
-
-I have gradually been improving the compression codecs in wimlib.  For XPRESS
-and LZX, they now usually outperform and outcompress the equivalent Microsoft
-implementations.  Although results will vary depending on the data being
-compressed, in the table below I present the results for a common use case:
-compressing an x86 Windows PE image.  Each row displays the compression type,
-the size of the resulting WIM file in bytes, and how many seconds it took to
-create the file.  When applicable, the results with the equivalent Microsoft
-implementation in WIMGAPI is included.
+wimlib's compression codecs usually outperform and outcompress their Microsoft
+equivalents.  Although results will vary depending on the data being compressed,
+the table below shows results for a common use case: creating an x86 Windows PE
+image ("boot.wim").  Each row shows the compression type, the size of the
+resulting WIM file in bytes, and the time it took to create the file.  When
+possible, the results with the Microsoft equivalent are included.
 
   =============================================================================
 
   =============================================================================
-  | Compression            ||  wimlib (v1.7.2)       |  WIMGAPI (Windows 8.1) |
+  | Compression            ||  wimlib (v1.8.0)       |  WIMGAPI (Windows 8.1) |
   =============================================================================
   =============================================================================
-  | None             [1]   ||  361,314,224 in 3.4s   |  361,315,338 in 4.5s   |
-  | XPRESS           [2]   ||  138,380,918 in 4.2s   |  140,457,487 in 6.3s   |
-  | XPRESS (slow)    [3]   ||  135,269,627 in 11.1s  |  N/A                   |
-  | LZX (quick)      [4]   ||  130,332,081 in 4.7s   |  N/A                   |
-  | LZX (normal)     [5]   ||  126,714,941 in 12.9s  |  127,293,240 in 19.2s  |
-  | LZX (slow)       [6]   ||  126,150,725 in 23.4s  |  N/A                   |
-  | LZMS (non-solid) [7]   ||  121,909,750 in 13.3s  |  N/A                   |
-  | LZMS (solid)     [8]   ||  93,650,894  in 44.4s  |  88,771,192 in 109.2   |
-  | "WIMBoot"        [9]   ||  167,095,369 in 6.4s   |  169,109,650 in 10.7s  |
-  | "WIMBoot" (slow) [10]  ||  165,195,668 in 9.5s   |  N/A                   |
+  | None             [1]   ||  361,314,224 in 2.4s   |  361,315,338 in 4.5s   |
+  | XPRESS           [2]   ||  138,218,750 in 3.0s   |  140,457,436 in 6.0s   |
+  | XPRESS (slow)    [3]   ||  135,173,511 in 8.9s   |  N/A                   |
+  | LZX (quick)      [4]   ||  130,207,195 in 3.8s   |  N/A                   |
+  | LZX (normal)     [5]   ||  126,522,539 in 10.4s  |  127,293,240 in 19.2s  |
+  | LZX (slow)       [6]   ||  126,042,313 in 17.3s  |  N/A                   |
+  | LZMS (non-solid) [7]   ||  116,150,682 in 25.3s  |  N/A                   |
+  | LZMS (solid)     [8]   ||  88,107,484  in 61.7s  |  88,769,830 in 102.3s  |
+  | "WIMBoot"        [9]   ||  167,023,719 in 3.5s   |  169,109,211 in 10.4s  |
+  | "WIMBoot" (slow) [10]  ||  165,027,583 in 7.9s   |  N/A                   |
   =============================================================================
 
 Notes:
   =============================================================================
 
 Notes:
@@ -116,7 +111,7 @@ Notes:
 
    [8] '--solid' for wimlib-imagex.  Should be '/compress:recovery' for DISM,
        but only works for /Export-Image, not /Capture-Image.  Compression chunk
 
    [8] '--solid' for wimlib-imagex.  Should be '/compress:recovery' for DISM,
        but only works for /Export-Image, not /Capture-Image.  Compression chunk
-       size in solid blocks defaults to 33554432 for wimlib, 67108864 for DISM.
+       size in solid resources defaults to 67108864 bytes in both cases.
 
    [9] '--wimboot' for wimlib-imagex; '/wimboot' for DISM.
        This is really XPRESS compression with 4096 byte chunks, so the same as
 
    [9] '--wimboot' for wimlib-imagex; '/wimboot' for DISM.
        This is really XPRESS compression with 4096 byte chunks, so the same as
@@ -139,7 +134,7 @@ Testing environment:
 
 The compression ratio provided by wimlib is also competitive with commonly used
 archive formats.  Below are file sizes that result when the Canterbury corpus is
 
 The compression ratio provided by wimlib is also competitive with commonly used
 archive formats.  Below are file sizes that result when the Canterbury corpus is
-compressed with wimlib (v1.7.2), WIMGAPI (Windows 8.1), and some other
+compressed with wimlib (v1.8.0), WIMGAPI (Windows 8.1), and some other
 formats/programs:
 
      =====================================================
 formats/programs:
 
      =====================================================
@@ -149,24 +144,20 @@ formats/programs:
      | WIM (WIMGAPI, None)                | 2,814,254    |
      | WIM (wimlib, None)                 | 2,814,216    |
      | WIM (WIMGAPI, XPRESS)              | 825,536      |
      | WIM (WIMGAPI, None)                | 2,814,254    |
      | WIM (wimlib, None)                 | 2,814,216    |
      | WIM (WIMGAPI, XPRESS)              | 825,536      |
-     | WIM (wimlib, XPRESS)               | 790,016      |
+     | WIM (wimlib, XPRESS)               | 789,296      |
      | tar.gz (gzip, default)             | 738,796      |
      | ZIP (Info-ZIP, default)            | 735,334      |
      | tar.gz (gzip, -9)                  | 733,971      |
      | ZIP (Info-ZIP, -9)                 | 732,297      |
      | tar.gz (gzip, default)             | 738,796      |
      | ZIP (Info-ZIP, default)            | 735,334      |
      | tar.gz (gzip, -9)                  | 733,971      |
      | ZIP (Info-ZIP, -9)                 | 732,297      |
-     | WIM (wimlib, LZX quick)            | 704,006      |
+     | WIM (wimlib, LZX quick)            | 690,110      |
      | WIM (WIMGAPI, LZX)                 | 651,866      |
      | WIM (WIMGAPI, LZX)                 | 651,866      |
-     | WIM (wimlib, LZX normal)           | 632,614      |
-     | WIM (wimlib, LZX slow)             | 625,050      |
-     | WIM (wimlib, LZMS non-solid)       | 581,960      |
+     | WIM (wimlib, LZX normal)           | 624,634      |
+     | WIM (wimlib, LZX slow)             | 620,728      |
+     | WIM (wimlib, LZMS non-solid)       | 581,046      |
      | tar.bz2 (bzip, default)            | 565,008      |
      | tar.bz2 (bzip, -9)                 | 565,008      |
      | tar.bz2 (bzip, default)            | 565,008      |
      | tar.bz2 (bzip, -9)                 | 565,008      |
-     | WIM (wimlib, LZX solid)            | 532,700      |
-     | WIM (wimlib, LZMS solid)           | 525,990      |
-     | WIM (wimlib, LZX solid, slow)      | 525,140      |
-     | WIM (wimlib, LZMS solid, slow)     | 523,728      |
      | WIM (WIMGAPI, LZMS solid)          | 521,366      |
      | WIM (WIMGAPI, LZMS solid)          | 521,366      |
-     | WIM (wimlib, LZX solid, very slow) | 520,832      |
+     | WIM (wimlib, LZMS solid)           | 515,800      |
      | tar.xz (xz, default)               | 486,916      |
      | tar.xz (xz, -9)                    | 486,904      |
      | 7z  (7-zip, default)               | 484,700      |
      | tar.xz (xz, default)               | 486,916      |
      | tar.xz (xz, -9)                    | 486,904      |
      | 7z  (7-zip, default)               | 484,700      |
@@ -316,9 +307,8 @@ extraction are implemented separately for Windows, UNIX, and UNIX (NTFS-3g
 mode), to ensure a fast and feature-rich implementation of each platform/mode.
 
 wimlib is mainly used on x86 and x86_64 CPUs, but it should also work on a
 mode), to ensure a fast and feature-rich implementation of each platform/mode.
 
 wimlib is mainly used on x86 and x86_64 CPUs, but it should also work on a
-number of other GCC-supported 32-bit or 64-bit architectures.  No assumptions
-are made about endianness, but some code assumes that unaligned memory accesses
-are supported and relatively efficient.
+number of other GCC-supported 32-bit or 64-bit architectures.  It has been
+tested on the ARM architecture.
 
 Currently, gcc and clang are the only supported compilers.  A few nonstandard
 extensions are used in the code.
 
 Currently, gcc and clang are the only supported compilers.  A few nonstandard
 extensions are used in the code.
@@ -328,7 +318,7 @@ extensions are used in the code.
 The WIM file format is partially specified in a document that can be found in
 the Microsoft Download Center.  However, this document really only provides an
 overview of the format and is not a formal specification.  It also does not
 The WIM file format is partially specified in a document that can be found in
 the Microsoft Download Center.  However, this document really only provides an
 overview of the format and is not a formal specification.  It also does not
-cover later extensions of the format, such as solid blocks.
+cover later extensions of the format, such as solid resources.
 
 With regards to the supported compression formats:
 
 
 With regards to the supported compression formats:
 
@@ -337,7 +327,7 @@ With regards to the supported compression formats:
   neither of which is completely applicable to its use in the WIM format, and
   the first of which contains multiple errors.
 - There does not seem to be any official documentation for LZMS, so my comments
   neither of which is completely applicable to its use in the WIM format, and
   the first of which contains multiple errors.
 - There does not seem to be any official documentation for LZMS, so my comments
-  and code in src/lzms-decompress.c may in fact be the best documentation
+  and code in src/lzms_decompress.c may in fact be the best documentation
   available for this particular compression format.
 
 The algorithms used by wimlib's compression and decompression codecs are
   available for this particular compression format.
 
 The algorithms used by wimlib's compression and decompression codecs are