• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

makefiles/vs90/H30-Jan-2013-236235

src/H03-May-2022-1,188944

test/H30-Jan-2013-9261

.gitignoreH A D30-Jan-201373 107

READMEH A D30-Jan-20132.2 KiB6746

setup.pyH A D30-Jan-2013606 2320

version.pyH A D30-Jan-20133.1 KiB12047

README

1Author: John Whitney (jjw@deltup.org)
2License: Mozilla Public License, v. 2.0.
3
4
5Introduction
6============
7
8BDelta is a sophisticated sequence matching library bundled with a delta
9creator and patch tool. This code is being used in production systems. Recent
10releases should be stable, fast, and accurate.
11
12
13Limitations / Warranty
14======================
15
16Note that there is currently a 4GB file size limitation.
17
18This software does not come with any guarantees. However, if you have any
19problems, please send me an e-mail and I'll likely be able to help. I would
20especially like to know about any bugs that you find.
21
22
23Library API C / C++
24===================
25
26BDelta can be used in a wide range of applications. It is easy for the library
27user to optimize its behavior to obtain better performance and results.
28
29The only header you need to include to use the library is "bdelta.h".
30
31The key thing to know about BDelta's algorithm is that it is designed to
32pass over the data multiple times, finding ever-smaller matches. The API
33is designed to give a great deal of control over each pass. This functionality
34is not well-documented, so contact me if you need help. I hope to add more
35comments to the code in future releases.
36
37
38Other Bindings
39==============
40
41A simple interface for accessing the API with Python is included. This
42interface is kept up-to-date since I do a lot of work in Python these days. To
43istall it, just type "python build.py install" in the root folder. You'll need
44Cython to build/install, but Cython is not required after installation.
45
46See test/py_bindings.py for a usage example.
47
48
49Delta File Format
50=================
51
52The included delta creator / patch tool uses this simple binary format:
53
54(All numbers are stored in little-endian format)
55char[3] magic "BDT"
56uint16 version (1, but will increment if this binary format changes)
57uint8 integer size (size, in bytes, of <uintXX> and <intXX> fields.)
58<uintXX> file 1 size
59<uintXX> file 2 size
60<uintXX> number of matches
61for each match {
62	<intXX> location in file 1 (relative to last match)
63	<intXX> location in file 2 (relative to last match)
64	<uintXX> match size
65}
66<Any data which is not matched is appended here, at the end of the patch>
67