125 lines
4.1 KiB
Plaintext
125 lines
4.1 KiB
Plaintext
|
|
||
|
============================================================================
|
||
|
miniLZO -- mini subset of the LZO real-time data compression library
|
||
|
============================================================================
|
||
|
|
||
|
Author : Markus Franz Xaver Johannes Oberhumer
|
||
|
<markus@oberhumer.com>
|
||
|
http://www.oberhumer.com/opensource/lzo/
|
||
|
Version : 2.06
|
||
|
Date : 12 Aug 2011
|
||
|
|
||
|
I've created miniLZO for projects where it is inconvenient to
|
||
|
include (or require) the full LZO source code just because you
|
||
|
want to add a little bit of data compression to your application.
|
||
|
|
||
|
miniLZO implements the LZO1X-1 compressor and both the standard and
|
||
|
safe LZO1X decompressor. Apart from fast compression it also useful
|
||
|
for situations where you want to use pre-compressed data files (which
|
||
|
must have been compressed with LZO1X-999).
|
||
|
|
||
|
miniLZO consists of one C source file and three header files:
|
||
|
minilzo.c
|
||
|
minilzo.h, lzoconf.h, lzodefs.h
|
||
|
|
||
|
To use miniLZO just copy these files into your source directory, add
|
||
|
minilzo.c to your Makefile and #include minilzo.h from your program.
|
||
|
Note: you also must distribute this file ('README.LZO') with your project.
|
||
|
|
||
|
minilzo.o compiles to about 6 KiB (using gcc or Visual C on an i386), and
|
||
|
the sources are about 30 KiB when packed with zip - so there's no more
|
||
|
excuse that your application doesn't support data compression :-)
|
||
|
|
||
|
For more information, documentation, example programs and other support
|
||
|
files (like Makefiles and build scripts) please download the full LZO
|
||
|
package from
|
||
|
http://www.oberhumer.com/opensource/lzo/
|
||
|
|
||
|
Have fun,
|
||
|
Markus
|
||
|
|
||
|
|
||
|
P.S. minilzo.c is generated automatically from the LZO sources and
|
||
|
therefore functionality is completely identical
|
||
|
|
||
|
|
||
|
Appendix A: building miniLZO
|
||
|
----------------------------
|
||
|
miniLZO is written such a way that it should compile and run
|
||
|
out-of-the-box on most machines.
|
||
|
|
||
|
If you are running on a very unusual architecture and lzo_init() fails then
|
||
|
you should first recompile with '-DLZO_DEBUG' to see what causes the failure.
|
||
|
The most probable case is something like 'sizeof(void *) != sizeof(size_t)'.
|
||
|
After identifying the problem you can compile by adding some defines
|
||
|
like '-DSIZEOF_VOID_P=8' to your Makefile.
|
||
|
|
||
|
The best solution is (of course) using Autoconf - if your project uses
|
||
|
Autoconf anyway just add '-DMINILZO_HAVE_CONFIG_H' to your compiler
|
||
|
flags when compiling minilzo.c. See the LZO distribution for an example
|
||
|
how to set up configure.ac.
|
||
|
|
||
|
|
||
|
Appendix B: list of public functions available in miniLZO
|
||
|
---------------------------------------------------------
|
||
|
Library initialization
|
||
|
lzo_init()
|
||
|
|
||
|
Compression
|
||
|
lzo1x_1_compress()
|
||
|
|
||
|
Decompression
|
||
|
lzo1x_decompress()
|
||
|
lzo1x_decompress_safe()
|
||
|
|
||
|
Checksum functions
|
||
|
lzo_adler32()
|
||
|
|
||
|
Version functions
|
||
|
lzo_version()
|
||
|
lzo_version_string()
|
||
|
lzo_version_date()
|
||
|
|
||
|
Portable (but slow) string functions
|
||
|
lzo_memcmp()
|
||
|
lzo_memcpy()
|
||
|
lzo_memmove()
|
||
|
lzo_memset()
|
||
|
|
||
|
|
||
|
Appendix C: suggested macros for 'configure.ac' when using Autoconf
|
||
|
-------------------------------------------------------------------
|
||
|
Checks for typedefs and structures
|
||
|
AC_CHECK_TYPE(ptrdiff_t,long)
|
||
|
AC_TYPE_SIZE_T
|
||
|
AC_CHECK_SIZEOF(short)
|
||
|
AC_CHECK_SIZEOF(int)
|
||
|
AC_CHECK_SIZEOF(long)
|
||
|
AC_CHECK_SIZEOF(long long)
|
||
|
AC_CHECK_SIZEOF(__int64)
|
||
|
AC_CHECK_SIZEOF(void *)
|
||
|
AC_CHECK_SIZEOF(size_t)
|
||
|
AC_CHECK_SIZEOF(ptrdiff_t)
|
||
|
|
||
|
Checks for compiler characteristics
|
||
|
AC_C_CONST
|
||
|
|
||
|
Checks for library functions
|
||
|
AC_CHECK_FUNCS(memcmp memcpy memmove memset)
|
||
|
|
||
|
|
||
|
Appendix D: Copyright
|
||
|
---------------------
|
||
|
LZO and miniLZO are Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001,
|
||
|
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||
|
Markus Franz Xaver Oberhumer <markus@oberhumer.com>.
|
||
|
|
||
|
LZO and miniLZO are distributed under the terms of the GNU General
|
||
|
Public License (GPL). See the file COPYING.
|
||
|
|
||
|
Special licenses for commercial and other applications which
|
||
|
are not willing to accept the GNU General Public License
|
||
|
are available by contacting the author.
|
||
|
|
||
|
|