Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 26 | pmbaty | 1 | |
| 2 | ============================================================================ |
||
| 3 | miniLZO -- mini subset of the LZO real-time data compression library |
||
| 4 | ============================================================================ |
||
| 5 | |||
| 6 | Author : Markus Franz Xaver Johannes Oberhumer |
||
| 7 | <markus@oberhumer.com> |
||
| 8 | http://www.oberhumer.com/opensource/lzo/ |
||
| 9 | Version : 2.10 |
||
| 10 | Date : 01 Mar 2017 |
||
| 11 | |||
| 12 | I've created miniLZO for projects where it is inconvenient to |
||
| 13 | include (or require) the full LZO source code just because you |
||
| 14 | want to add a little bit of data compression to your application. |
||
| 15 | |||
| 16 | miniLZO implements the LZO1X-1 compressor and both the standard and |
||
| 17 | safe LZO1X decompressor. Apart from fast compression it also useful |
||
| 18 | for situations where you want to use pre-compressed data files (which |
||
| 19 | must have been compressed with LZO1X-999). |
||
| 20 | |||
| 21 | miniLZO consists of one C source file and three header files: |
||
| 22 | minilzo.c |
||
| 23 | minilzo.h, lzoconf.h, lzodefs.h |
||
| 24 | |||
| 25 | To use miniLZO just copy these files into your source directory, add |
||
| 26 | minilzo.c to your Makefile and #include minilzo.h from your program. |
||
| 27 | Note: you also must distribute this file ('README.LZO') with your project. |
||
| 28 | |||
| 29 | minilzo.o compiles to about 6 KiB (using gcc or Visual C on an i386), and |
||
| 30 | the sources are about 30 KiB when packed with zip - so there's no more |
||
| 31 | excuse that your application doesn't support data compression :-) |
||
| 32 | |||
| 33 | For more information, documentation, example programs and other support |
||
| 34 | files (like Makefiles and build scripts) please download the full LZO |
||
| 35 | package from |
||
| 36 | http://www.oberhumer.com/opensource/lzo/ |
||
| 37 | |||
| 38 | Have fun, |
||
| 39 | Markus |
||
| 40 | |||
| 41 | |||
| 42 | P.S. minilzo.c is generated automatically from the LZO sources and |
||
| 43 | therefore functionality is completely identical |
||
| 44 | |||
| 45 | |||
| 46 | Appendix A: building miniLZO |
||
| 47 | ---------------------------- |
||
| 48 | miniLZO is written such a way that it should compile and run |
||
| 49 | out-of-the-box on most machines. |
||
| 50 | |||
| 51 | If you are running on a very unusual architecture and lzo_init() fails then |
||
| 52 | you should first recompile with '-DLZO_DEBUG' to see what causes the failure. |
||
| 53 | The most probable case is something like 'sizeof(void *) != sizeof(size_t)'. |
||
| 54 | After identifying the problem you can compile by adding some defines |
||
| 55 | like '-DSIZEOF_VOID_P=8' to your Makefile. |
||
| 56 | |||
| 57 | The best solution is (of course) using Autoconf - if your project uses |
||
| 58 | Autoconf anyway just add '-DMINILZO_HAVE_CONFIG_H' to your compiler |
||
| 59 | flags when compiling minilzo.c. See the LZO distribution for an example |
||
| 60 | how to set up configure.ac. |
||
| 61 | |||
| 62 | |||
| 63 | Appendix B: list of public functions available in miniLZO |
||
| 64 | --------------------------------------------------------- |
||
| 65 | Library initialization |
||
| 66 | lzo_init() |
||
| 67 | |||
| 68 | Compression |
||
| 69 | lzo1x_1_compress() |
||
| 70 | |||
| 71 | Decompression |
||
| 72 | lzo1x_decompress() |
||
| 73 | lzo1x_decompress_safe() |
||
| 74 | |||
| 75 | Checksum functions |
||
| 76 | lzo_adler32() |
||
| 77 | |||
| 78 | Version functions |
||
| 79 | lzo_version() |
||
| 80 | lzo_version_string() |
||
| 81 | lzo_version_date() |
||
| 82 | |||
| 83 | Portable (but slow) string functions |
||
| 84 | lzo_memcmp() |
||
| 85 | lzo_memcpy() |
||
| 86 | lzo_memmove() |
||
| 87 | lzo_memset() |
||
| 88 | |||
| 89 | |||
| 90 | Appendix C: suggested macros for 'configure.ac' when using Autoconf |
||
| 91 | ------------------------------------------------------------------- |
||
| 92 | Checks for typedefs and structures |
||
| 93 | AC_CHECK_TYPE(ptrdiff_t,long) |
||
| 94 | AC_TYPE_SIZE_T |
||
| 95 | AC_CHECK_SIZEOF(short) |
||
| 96 | AC_CHECK_SIZEOF(int) |
||
| 97 | AC_CHECK_SIZEOF(long) |
||
| 98 | AC_CHECK_SIZEOF(long long) |
||
| 99 | AC_CHECK_SIZEOF(__int64) |
||
| 100 | AC_CHECK_SIZEOF(void *) |
||
| 101 | AC_CHECK_SIZEOF(size_t) |
||
| 102 | AC_CHECK_SIZEOF(ptrdiff_t) |
||
| 103 | |||
| 104 | Checks for compiler characteristics |
||
| 105 | AC_C_CONST |
||
| 106 | |||
| 107 | Checks for library functions |
||
| 108 | AC_CHECK_FUNCS(memcmp memcpy memmove memset) |
||
| 109 | |||
| 110 | |||
| 111 | Appendix D: Copyright |
||
| 112 | --------------------- |
||
| 113 | LZO and miniLZO are Copyright (C) 1996-2017 Markus Franz Xaver Oberhumer |
||
| 114 | All Rights Reserved. |
||
| 115 | |||
| 116 | LZO and miniLZO are distributed under the terms of the GNU General |
||
| 117 | Public License (GPL). See the file COPYING. |
||
| 118 | |||
| 119 | Special licenses for commercial and other applications which |
||
| 120 | are not willing to accept the GNU General Public License |
||
| 121 | are available by contacting the author. |
||
| 122 | |||
| 123 |