1 // Copyright 2016 The etcd Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 /* 16 Package embed provides bindings for embedding an etcd server in a program. 17 18 Launch an embedded etcd server using the configuration defaults: 19 20 import ( 21 "log" 22 "time" 23 24 "go.etcd.io/etcd/server/v3/embed" 25 ) 26 27 func main() { 28 cfg := embed.NewConfig() 29 cfg.Dir = "default.etcd" 30 e, err := embed.StartEtcd(cfg) 31 if err != nil { 32 log.Fatal(err) 33 } 34 defer e.Close() 35 select { 36 case <-e.Server.ReadyNotify(): 37 log.Printf("Server is ready!") 38 case <-time.After(60 * time.Second): 39 e.Server.Stop() // trigger a shutdown 40 log.Printf("Server took too long to start!") 41 } 42 log.Fatal(<-e.Err()) 43 } 44 */ 45 package embed 46