Name Date Size #Lines LOC

..10-Aug-2022-

auditd/H09-Aug-2022-5,4773,814

cbcrypto/H09-Aug-2022-1,8811,545

cbsasl/H09-Aug-2022-4,1372,669

daemon/H09-Aug-2022-42,98027,307

docs/H09-Aug-2022-54,22950,568

engines/H09-Aug-2022-238,848158,126

etc/H09-Aug-2022-909883

include/H09-Aug-2022-11,0734,835

logger/H09-Aug-2022-1,376705

programs/H09-Aug-2022-4,3163,366

protocol/H09-Aug-2022-10,6097,876

rbac/H09-Aug-2022-710536

scripts/H09-Aug-2022-1,6861,281

tests/H09-Aug-2022-40,47929,025

testsuite/H09-Aug-2022-701550

time/H09-Aug-2022-176119

tracing/H09-Aug-2022-271190

utilities/H09-Aug-2022-3,6472,088

xattr/H09-Aug-2022-667454

.gitignoreH A D09-Aug-2022741 5251

.mailmapH A D09-Aug-2022720 1110

CMakeLists.txtH A D09-Aug-202210.2 KiB274236

CONTRIBUTING.mdH A D09-Aug-20221.2 KiB2820

COPYINGH A D09-Aug-20221.5 KiB3125

CTestCustom.cmakeH A D09-Aug-2022259 65

LICENSEH A D09-Aug-20221.5 KiB3125

README.mdH A D09-Aug-20222.6 KiB7858

README.md

1# KV-Engine
2
3Welcome to the Couchbase _KV-Engine_ project.
4
5This started as Couchbase's fork of the upstream `memcached` project,
6but has substantially evolved since then. It contains the bulk of the
7code for the Key/Value service of Couchbase Server.
8
9## Repository Layout
10
11Areas of interest in the repository:
12
13* [`include/`](include/) - Public header files.
14* `daemon/` - Source for the main daemon process (also known as the
15  _server_). This is where [`main()`](daemon/memcached.cc) lives.
16* `engines/` - Source for the different engines (aka bucket types)
17  supported. Includes:
18    * [`default engine`](engines/default_engine/) - The original
19      _memcache_ engine. Powers the _Memcache_ bucket type.
20    * [`ep`](engines/ep/) - _Eventually Persistent_ Engine. Powers the
21    _Couchbase_ and _Ephemeral_ bucket types.
22    * [`ewouldblock engine`](engines/ewouldblock_engine) - Test engine
23      which interposes a real engine and can perform various types of
24      error-injection.
25* `tests/` - Test cases.
26
27## Building
28
29KV-Engine has a number of external dependancies, as such it should be
30built via the Couchbase
31[top-level Makefile](https://github.com/couchbase/tlm).
32
33## Documentation
34
35### Architecture
36
37* [KV-Engine Architecture](docs/Architecture.md)
38* [CBSASL](cbsasl/CBSASL.md)
39* [Audit](auditd/README.md)
40* [Event Tracing / Phosphor](docs/Tracing.md)
41* [Document attributes](docs/Document.md)
42* [Environment variables](docs/EnvironmentVariables.md)
43* [Role Based Access Control (RBAC)](docs/rbac.md)
44* [SSL Client Certificate](docs/ssl_client_cert.md)
45* [DCP](docs/dcp/README.md)
46* [Memcached configuration file](docs/memcached.json.adoc)
47
48### Protocols
49
50* [Memcached Binary Protocol](docs/BinaryProtocol.md)
51    * [SASL](docs/sasl.md)
52    * [Duplex mode](docs/Duplex.md)
53    * [External Authentication Provider](docs/ExternalAuthProvider.md)
54    * [DCP](docs/dcp/documentation/protocol.md)
55
56### Policies / Guidelines
57
58* [Coding Standards](docs/CodingStandards.rst)
59* [Error Handling Best Practices](docs/ErrorHandling.md)
60
61## Tools
62
63* [Analyze jemalloc memory statistics](scripts/jemalloc/README.md)
64
65## Related Projects
66
67While the bulk of code making up KV-Engine is in this repo, there are
68a number of other repositories which contribute to the final program:
69
70* [`couchbase/couchstore`](https://github.com/couchbase/couchstore) -
71  Couchbase storage file library.
72* [`couchbase/phosphor`](https://github.com/couchbase/phosphor) -
73  Phosphor: high performance event tracing framework.
74* [`couchbase/platform`](https://github.com/couchbase/platform) -
75  Platform abstraction layer.
76* [`couchbase/subjson`](https://github.com/couchbase/subjson) -
77  subjson - quickly manipulate JSON subfields.
78