https://github.com/coreos/etcd%|%etcd%|% is a highly-available key value store for shared configuration and service discovery written in the [Go] language. Together with fleet, it forms the core of the cloud-specific linux distribution called https://coreos.com/%|%CoreOS%|%. A Tcl https://github.com/efrecon/etcd-tcl%|%implementation%|% of the https://coreos.com/docs/distributed-configuration/etcd-api/%|%API%|% is available on github. It was originally a component of the [biot] project, but being self-contained, was forked out as a separate project. [EF] 2015-01-21 An earlier version of this API used `::etcd::set` and `::etcd::get` to set and get keys, which interfered with the regular `set`. The new version uses a different naming convention, in line with the https://github.com/jplana/python-etcd%|%python API implementation%|%. The new version also uses more complex semantics for `::etcd::read`, `::etcd::write` and `::etcd::delete`, procedures that are used by most of the remaining procedures. ====== # Create a new connection context (defaults to default port on localhost) set c [::etcd::new] # Create a directory, and a sub-directory ::etcd::mkdir $c /onedir ::etcd::mkdir $c /onedir/asubdir # Create and set a key: ::etcd::write $c /onedir/asubdir/test "Hello World" # Get back the key set k [::etcd::read $c /onedir/asubdir/test] # Remove the key ::etcd::delete $c /onedir/asubdir/test # Remove the directories, recursively ::etcd::rmdir $c /onedir 1 ====== For a more detailed documentation, consult the https://github.com/efrecon/etcd-tcl/blob/master/README.md%|%online manual%|%. While most operations can be performed using `curl`, `etcd` comes with a simple CLI client called. I have made available a https://github.com/efrecon/etcd-ctl%|%(re)implementation of this client%|%, in Tcl. This is more meant as a testbed for the library above, but it also implements a functionality that is missing from the standard client, i.e. the ability to easily push the content of one or several files to the etcd key-space, using the same name as the file. Thus implementing a simplistic file mirroring facility. <>Networking | Internet