github.com/macb/etcd@v0.3.1-0.20140227003422-a60481c6b1a0/README.md (about) 1 # etcd 2 3 README version 0.3.0 4 5 [![Build Status](https://drone.io/github.com/coreos/etcd/status.png)](https://drone.io/github.com/coreos/etcd/latest) 6 7 A highly-available key value store for shared configuration and service discovery. 8 etcd is inspired by zookeeper and doozer, with a focus on: 9 10 * Simple: curl'able user facing API (HTTP+JSON) 11 * Secure: optional SSL client cert authentication 12 * Fast: benchmarked 1000s of writes/s per instance 13 * Reliable: Properly distributed using Raft 14 15 Etcd is written in Go and uses the [Raft][raft] consensus algorithm to manage a highly-available replicated log. 16 17 See [etcdctl][etcdctl] for a simple command line client. 18 Or feel free to just use curl, as in the examples below. 19 20 [raft]: http://raftconsensus.github.io/ 21 [etcdctl]: http://github.com/coreos/etcdctl/ 22 23 ## Getting Started 24 25 ### Getting etcd 26 27 The latest release and setup instructions are available at [Github][github-release]. 28 29 [github-release]: https://github.com/coreos/etcd/releases/ 30 31 32 ### Building 33 34 You can build etcd from source: 35 36 ```sh 37 git clone https://github.com/coreos/etcd 38 cd etcd 39 ./build 40 ``` 41 42 This will generate a binary called `./bin/etcd`. 43 44 _NOTE_: you need go 1.2+. Please check your installation with 45 46 ``` 47 go version 48 ``` 49 50 ### Running 51 52 First start a single machine cluster of etcd: 53 54 ```sh 55 ./bin/etcd 56 ``` 57 58 This will bring up etcd listening on port 4001 for client communication and on port 7001 for server-to-server communication. 59 60 Next lets set a single key and then retrieve it: 61 62 ``` 63 curl -L http://127.0.0.1:4001/v2/keys/mykey -XPUT -d value="this is awesome" 64 curl -L http://127.0.0.1:4001/v2/keys/mykey 65 ``` 66 67 You have successfully started an etcd on a single machine and written a key to the store. Now it time to dig into the full etcd API and other guides. 68 69 ### Next Steps 70 71 - Explore the full [API][api.md]. 72 - Setup a [multi-machine cluster][clustering.md]. 73 - Learn the [config format, env variables and flags][configuration.md]. 74 - Find [language bindings and tools][libraries-and-tools.md]. 75 - Learn about the dashboard, lock and leader election [modules][modules.md]. 76 - Use TLS to [secure an etcd cluster][security.md]. 77 - [Tune etcd][tuning.md]. 78 79 [api.md]: https://github.com/coreos/etcd/blob/master/Documentation/api.md 80 [clustering.md]: https://github.com/coreos/etcd/blob/master/Documentation/clustering.md 81 [configuration.md]: https://github.com/coreos/etcd/blob/master/Documentation/configuration.md 82 [libraries-and-tools.md]: https://github.com/coreos/etcd/blob/master/Documentation/libraries-and-tools.md 83 [modules.md]: https://github.com/coreos/etcd/blob/master/Documentation/modules.md 84 [security.md]: https://github.com/coreos/etcd/blob/master/Documentation/security.md 85 [tuning.md]: https://github.com/coreos/etcd/blob/master/Documentation/tuning.md 86 87 ## Contact 88 89 - Mailing list: http://coreos.com/lists/etcd-dev/ 90 - IRC: #coreos on irc.freenode.net 91 - Planning/Roadmap: https://trello.com/b/OiEbU547/etcd 92 - Bugs: https://github.com/coreos/etcd/issues 93 94 ## Contributing 95 96 See [CONTRIBUTING](https://github.com/coreos/etcd/blob/master/CONTRIBUTING.md) for details on submitting patches and contacting developers via IRC and mailing lists. 97 98 ## Project Details 99 100 ### Versioning 101 102 #### Service Versioning 103 104 etcd uses [semantic versioning][semver]. 105 New minor versions may add additional features to the API. 106 107 You can get the version of etcd by issuing a request to /version: 108 109 ```sh 110 curl -L http://127.0.0.1:4001/version 111 ``` 112 113 [semver]: http://semver.org/ 114 115 #### API Versioning 116 117 Clients are encouraged to use the `v2` API. The `v1` API will not change. 118 119 The `v2` API responses should not change after the 0.2.0 release but new features will be added over time. 120 121 During the pre-v1.0.0 series of releases we may break the API as we fix bugs and get feedback. 122 123 ### License 124 125 etcd is under the Apache 2.0 license. See the [LICENSE][license] file for details. 126 127 [license]: https://github.com/coreos/etcd/blob/master/LICENSE