jorlow@chromium.org | 179be58 | 2011-03-18 22:37:00 +0000 | [diff] [blame] | 1 | leveldb: A key-value store |
| 2 | Authors: Sanjay Ghemawat (sanjay@google.com) and Jeff Dean (jeff@google.com) |
| 3 | |
| 4 | The code under this directory implements a system for maintaining a |
dgrogan@chromium.org | 1511be6 | 2011-04-20 22:48:11 +0000 | [diff] [blame] | 5 | persistent key/value store. |
jorlow@chromium.org | 179be58 | 2011-03-18 22:37:00 +0000 | [diff] [blame] | 6 | |
| 7 | See doc/index.html for more explanation. |
dgrogan@chromium.org | 1511be6 | 2011-04-20 22:48:11 +0000 | [diff] [blame] | 8 | See doc/impl.html for a brief overview of the implementation. |
jorlow@chromium.org | 179be58 | 2011-03-18 22:37:00 +0000 | [diff] [blame] | 9 | |
| 10 | The public interface is in include/*.h. Callers should not include or |
| 11 | rely on the details of any other header files in this package. Those |
| 12 | internal APIs may be changed without warning. |
| 13 | |
| 14 | Guide to header files: |
| 15 | |
| 16 | include/db.h |
| 17 | Main interface to the DB: Start here |
| 18 | |
| 19 | include/options.h |
| 20 | Control over the behavior of an entire database, and also |
| 21 | control over the behavior of individual reads and writes. |
| 22 | |
| 23 | include/comparator.h |
| 24 | Abstraction for user-specified comparison function. If you want |
| 25 | just bytewise comparison of keys, you can use the default comparator, |
| 26 | but clients can write their own comparator implementations if they |
| 27 | want custom ordering (e.g. to handle different character |
| 28 | encodings, etc.) |
| 29 | |
| 30 | include/iterator.h |
| 31 | Interface for iterating over data. You can get an iterator |
| 32 | from a DB object. |
| 33 | |
| 34 | include/write_batch.h |
| 35 | Interface for atomically applying multiple updates to a database. |
| 36 | |
| 37 | include/slice.h |
| 38 | A simple module for maintaining a pointer and a length into some |
| 39 | other byte array. |
| 40 | |
| 41 | include/status.h |
| 42 | Status is returned from many of the public interfaces and is used |
| 43 | to report success and various kinds of errors. |
| 44 | |
| 45 | include/env.h |
| 46 | Abstraction of the OS environment. A posix implementation of |
| 47 | this interface is in util/env_posix.cc |
| 48 | |
| 49 | include/table.h |
| 50 | include/table_builder.h |
| 51 | Lower-level modules that most clients probably won't use directly |