|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| .github/ | H | 16-Jul-2020 | - | 14 | 7 |
| Documentation/ | H | 16-Jul-2020 | - | 15,223 | 11,845 |
| alarm/ | H | 16-Jul-2020 | - | 153 | 112 |
| auth/ | H | 16-Jul-2020 | - | 3,778 | 2,985 |
| client/ | H | 16-Jul-2020 | - | 6,317 | 4,763 |
| clientv3/ | H | 16-Jul-2020 | - | 20,703 | 14,726 |
| compactor/ | H | 16-Jul-2020 | - | 721 | 432 |
| contrib/ | H | 16-Jul-2020 | - | 2,691 | 1,858 |
| discovery/ | H | 16-Jul-2020 | - | 923 | 769 |
| embed/ | H | 16-Jul-2020 | - | 1,860 | 1,345 |
| error/ | H | 16-Jul-2020 | - | 215 | 151 |
| etcdctl/ | H | 16-Jul-2020 | - | 11,203 | 8,269 |
| etcdmain/ | H | 16-Jul-2020 | - | 2,295 | 1,837 |
| etcdserver/ | H | 16-Jul-2020 | - | 57,461 | 50,179 |
| functional/ | H | 16-Jul-2020 | - | 13,915 | 11,501 |
| hack/ | H | 16-Jul-2020 | - | 4,135 | 3,439 |
| integration/ | H | 16-Jul-2020 | - | 11,598 | 9,323 |
| lease/ | H | 16-Jul-2020 | - | 2,350 | 1,808 |
| logos/ | H | 03-May-2022 | - | | |
| mvcc/ | H | 16-Jul-2020 | - | 10,125 | 7,648 |
| pkg/ | H | 16-Jul-2020 | - | 15,979 | 10,928 |
| proxy/ | H | 16-Jul-2020 | - | 4,925 | 3,446 |
| raft/ | H | 16-Jul-2020 | - | 15,538 | 11,833 |
| rafthttp/ | H | 16-Jul-2020 | - | 5,425 | 4,061 |
| scripts/ | H | 16-Jul-2020 | - | 603 | 443 |
| snap/ | H | 16-Jul-2020 | - | 1,181 | 961 |
| snapshot/ | H | 16-Jul-2020 | - | 539 | 381 |
| store/ | H | 16-Jul-2020 | - | 4,681 | 3,237 |
| tests/ | H | 16-Jul-2020 | - | 5,033 | 4,138 |
| vendor/ | H | 16-Jul-2020 | - | 3,782,252 | 3,182,641 |
| version/ | H | 16-Jul-2020 | - | 57 | 29 |
| wal/ | H | 16-Jul-2020 | - | 3,602 | 2,789 |
| .dockerignore | H A D | 16-Jul-2020 | 5 | 2 | 1 |
| .gitignore | H A D | 16-Jul-2020 | 192 | 21 | 20 |
| .godir | H A D | 16-Jul-2020 | 23 | 2 | 1 |
| .header | H A D | 16-Jul-2020 | 593 | 14 | 13 |
| .travis.yml | H A D | 16-Jul-2020 | 1.5 KiB | 67 | 57 |
| .words | H A D | 16-Jul-2020 | 471 | 47 | 46 |
| CODE_OF_CONDUCT.md | H A D | 16-Jul-2020 | 3 KiB | 64 | 49 |
| CONTRIBUTING.md | H A D | 16-Jul-2020 | 2.5 KiB | 63 | 40 |
| DCO | H A D | 16-Jul-2020 | 1.4 KiB | 37 | 27 |
| Dockerfile | H A D | 16-Jul-2020 | 177 | 7 | 6 |
| Dockerfile-functional-tester | H A D | 16-Jul-2020 | 1.5 KiB | 54 | 48 |
| Dockerfile-release | H A D | 16-Jul-2020 | 607 | 18 | 13 |
| Dockerfile-release.arm64 | H A D | 16-Jul-2020 | 207 | 12 | 8 |
| Dockerfile-release.ppc64le | H A D | 16-Jul-2020 | 207 | 12 | 8 |
| Dockerfile-test | H A D | 16-Jul-2020 | 1.6 KiB | 59 | 52 |
| LICENSE | H A D | 16-Jul-2020 | 11.1 KiB | 203 | 169 |
| MAINTAINERS | H A D | 16-Jul-2020 | 449 | 9 | 7 |
| Makefile | H A D | 16-Jul-2020 | 17.6 KiB | 518 | 344 |
| NOTICE | H A D | 16-Jul-2020 | 126 | 6 | 4 |
| Procfile | H A D | 16-Jul-2020 | 1.4 KiB | 6 | 5 |
| Procfile.v2 | H A D | 16-Jul-2020 | 1.5 KiB | 7 | 6 |
| README.md | H A D | 16-Jul-2020 | 7.1 KiB | 162 | 106 |
| ROADMAP.md | H A D | 16-Jul-2020 | 837 | 24 | 16 |
| V2Procfile | H A D | 16-Jul-2020 | 1.5 KiB | 6 | 5 |
| bill-of-materials.json | H A D | 16-Jul-2020 | 7.8 KiB | 488 | 487 |
| bill-of-materials.override.json | H A D | 16-Jul-2020 | 392 | 27 | 26 |
| build | H A D | 16-Jul-2020 | 2.5 KiB | 95 | 72 |
| build.bat | H A D | 16-Jul-2020 | 51 | 2 | 1 |
| build.ps1 | H A D | 16-Jul-2020 | 2.7 KiB | 82 | 66 |
| cover | H A D | 16-Jul-2020 | 638 | 32 | 16 |
| etcd.conf.yml.sample | H A D | 16-Jul-2020 | 3.6 KiB | 145 | 98 |
| functional.yaml | H A D | 16-Jul-2020 | 5.8 KiB | 207 | 193 |
| glide.lock | H A D | 16-Jul-2020 | 6.6 KiB | 231 | 230 |
| glide.yaml | H A D | 16-Jul-2020 | 4.2 KiB | 169 | 168 |
| go.mod | H A D | 16-Jul-2020 | 2.9 KiB | 64 | 61 |
| go.sum | H A D | 16-Jul-2020 | 22 KiB | 234 | 233 |
| main.go | H A D | 16-Jul-2020 | 1.1 KiB | 30 | 5 |
| main_test.go | H A D | 16-Jul-2020 | 938 | 36 | 17 |
| meeting.ics | H A D | 16-Jul-2020 | 1.7 KiB | 50 | 49 |
| test | H A D | 16-Jul-2020 | 20.3 KiB | 684 | 492 |
README.md
1# etcd
2
3[![Go Report Card](https://goreportcard.com/badge/github.com/coreos/etcd?style=flat-square)](https://goreportcard.com/report/github.com/coreos/etcd)
4[![Coverage](https://codecov.io/gh/coreos/etcd/branch/master/graph/badge.svg)](https://codecov.io/gh/coreos/etcd)
5[![Build Status Travis](https://img.shields.io/travis/coreos/etcdlabs.svg?style=flat-square&&branch=master)](https://travis-ci.org/coreos/etcd)
6[![Build Status Semaphore](https://semaphoreci.com/api/v1/coreos/etcd/branches/master/shields_badge.svg)](https://semaphoreci.com/coreos/etcd)
7[![Godoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](https://godoc.org/github.com/coreos/etcd)
8[![Releases](https://img.shields.io/github/release/coreos/etcd/all.svg?style=flat-square)](https://github.com/coreos/etcd/releases)
9[![LICENSE](https://img.shields.io/github/license/coreos/etcd.svg?style=flat-square)](https://github.com/coreos/etcd/blob/master/LICENSE)
10
11**Note**: The `master` branch may be in an *unstable or even broken state* during development. Please use [releases][github-release] instead of the `master` branch in order to get stable binaries.
12
13*the etcd v2 [documentation](Documentation/v2/README.md) has moved*
14
15![etcd Logo](logos/etcd-horizontal-color.png)
16
17etcd is a distributed reliable key-value store for the most critical data of a distributed system, with a focus on being:
18
19* *Simple*: well-defined, user-facing API (gRPC)
20* *Secure*: automatic TLS with optional client cert authentication
21* *Fast*: benchmarked 10,000 writes/sec
22* *Reliable*: properly distributed using Raft
23
24etcd is written in Go and uses the [Raft][raft] consensus algorithm to manage a highly-available replicated log.
25
26etcd is used [in production by many companies](./Documentation/production-users.md), and the development team stands behind it in critical deployment scenarios, where etcd is frequently teamed with applications such as [Kubernetes][k8s], [fleet][fleet], [locksmith][locksmith], [vulcand][vulcand], [Doorman][doorman], and many others. Reliability is further ensured by rigorous [testing][etcd-tests].
27
28See [etcdctl][etcdctl] for a simple command line client.
29
30[raft]: https://raft.github.io/
31[k8s]: http://kubernetes.io/
32[doorman]: https://github.com/youtube/doorman
33[fleet]: https://github.com/coreos/fleet
34[locksmith]: https://github.com/coreos/locksmith
35[vulcand]: https://github.com/vulcand/vulcand
36[etcdctl]: https://github.com/coreos/etcd/tree/master/etcdctl
37[etcd-tests]: http://dash.etcd.io
38
39## Community meetings
40
41etcd contributors and maintainers have bi-weekly meetings at 11:00 AM (USA Pacific) on Tuesdays. There is an [iCalendar][rfc5545] format for the meetings [here](meeting.ics). Anyone is welcome to join via [Zoom][zoom] or audio-only: +1 669 900 6833. An initial agenda will be posted to the [shared Google docs][shared-meeting-notes] a day before each meeting, and everyone is welcome to suggest additional topics or other agendas.
42
43[rfc5545]: https://tools.ietf.org/html/rfc5545
44[zoom]: https://coreos.zoom.us/j/854793406
45[shared-meeting-notes]: https://docs.google.com/document/d/1DbVXOHvd9scFsSmL2oNg4YGOHJdXqtx583DmeVWrB_M/edit#
46
47## Getting started
48
49### Getting etcd
50
51The easiest way to get etcd is to use one of the pre-built release binaries which are available for OSX, Linux, Windows, [rkt][rkt], and Docker. Instructions for using these binaries are on the [GitHub releases page][github-release].
52
53For those wanting to try the very latest version, [build the latest version of etcd][dl-build] from the `master` branch. This first needs [*Go*](https://golang.org/) installed (version 1.9+ is required). All development occurs on `master`, including new features and bug fixes. Bug fixes are first targeted at `master` and subsequently ported to release branches, as described in the [branch management][branch-management] guide.
54
55[rkt]: https://github.com/rkt/rkt/releases/
56[github-release]: https://github.com/coreos/etcd/releases/
57[branch-management]: ./Documentation/branch_management.md
58[dl-build]: ./Documentation/dl_build.md#build-the-latest-version
59
60### Running etcd
61
62First start a single-member cluster of etcd.
63
64If etcd is installed using the [pre-built release binaries][github-release], run it from the installation location as below:
65
66```sh
67/tmp/etcd-download-test/etcd
68```
69The etcd command can be simply run as such if it is moved to the system path as below:
70
71```sh
72mv /tmp/etcd-download-test/etcd /usr/locale/bin/
73
74etcd
75```
76
77If etcd is [build from the master branch][dl-build], run it as below:
78
79```sh
80./bin/etcd
81```
82
83This will bring up etcd listening on port 2379 for client communication and on port 2380 for server-to-server communication.
84
85Next, let's set a single key, and then retrieve it:
86
87```
88ETCDCTL_API=3 etcdctl put mykey "this is awesome"
89ETCDCTL_API=3 etcdctl get mykey
90```
91
92That's it! etcd is now running and serving client requests. For more
93
94- [Animated quick demo][demo-gif]
95- [Interactive etcd playground][etcd-play]
96
97[demo-gif]: ./Documentation/demo.md
98[etcd-play]: http://play.etcd.io/
99
100### etcd TCP ports
101
102The [official etcd ports][iana-ports] are 2379 for client requests, and 2380 for peer communication.
103
104[iana-ports]: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt
105
106### Running a local etcd cluster
107
108First install [goreman](https://github.com/mattn/goreman), which manages Procfile-based applications.
109
110Our [Procfile script](./Procfile) will set up a local example cluster. Start it with:
111
112```sh
113goreman start
114```
115
116This will bring up 3 etcd members `infra1`, `infra2` and `infra3` and etcd `grpc-proxy`, which runs locally and composes a cluster.
117
118Every cluster member and proxy accepts key value reads and key value writes.
119
120### Running etcd on Kubernetes
121
122To run an etcd cluster on Kubernetes, try [etcd operator](https://github.com/coreos/etcd-operator).
123
124### Next steps
125
126Now it's time to dig into the full etcd API and other guides.
127
128- Read the full [documentation][fulldoc].
129- Explore the full gRPC [API][api].
130- Set up a [multi-machine cluster][clustering].
131- Learn the [config format, env variables and flags][configuration].
132- Find [language bindings and tools][integrations].
133- Use TLS to [secure an etcd cluster][security].
134- [Tune etcd][tuning].
135
136[fulldoc]: ./Documentation/docs.md
137[api]: ./Documentation/dev-guide/api_reference_v3.md
138[clustering]: ./Documentation/op-guide/clustering.md
139[configuration]: ./Documentation/op-guide/configuration.md
140[integrations]: ./Documentation/integrations.md
141[security]: ./Documentation/op-guide/security.md
142[tuning]: ./Documentation/tuning.md
143
144## Contact
145
146- Mailing list: [etcd-dev](https://groups.google.com/forum/?hl=en#!forum/etcd-dev)
147- IRC: #[etcd](irc://irc.freenode.org:6667/#etcd) on freenode.org
148- Planning/Roadmap: [milestones](https://github.com/coreos/etcd/milestones), [roadmap](./ROADMAP.md)
149- Bugs: [issues](https://github.com/coreos/etcd/issues)
150
151## Contributing
152
153See [CONTRIBUTING](CONTRIBUTING.md) for details on submitting patches and the contribution workflow.
154
155## Reporting bugs
156
157See [reporting bugs](Documentation/reporting_bugs.md) for details about reporting any issues.
158
159### License
160
161etcd is under the Apache 2.0 license. See the [LICENSE](LICENSE) file for details.
162