4 ms·
Java is certainly the most common language ZK seems to be used with, but there are client bindings in Python, Perl and quite a few other languages: https://cwi
by csears 15y ago
Java is certainly the most common language ZK seems to be used with, but there are client bindings in Python, Perl and quite a few other languages:
https://cwiki.apache.org/confluence/display/ZOOKEEPER/ZKClientBindings https://cwiki.apache.org/confluence/display/ZOOKEEPER/ZKClie...
- nknight 15y agoThe Python bindings are not very robust, don't fit the language well, and have a build process alien to the Python ecosystem. If it's representative of the other non-Java bindings, it's small wonder it doesn't get used by non-Java projects.
- shykes 15y agoI second that. At dotCloud we had to pull away from Zookeeper because of the poor quality of the Python (and therefore C) bindings.
- pquerna 15y agoYes, they are binding to a C client, include the existing node-zookeeper: https://github.com/yfinkelstein/node-zookeeper https://github.com/yfinkelstein/node-zookeeper The C client isn't what I would call great, and the API surface is fairly complicated for languages to bind to -- you see many reports about the bindings crashing their respective languages. I'm currently hacking on a pure-Node.js implementation of the Apache Jute RecrodIO and Apache Zookeeper network protocol: https://github.com/racker/node-zk https://github.com/racker/node-zk The core problem is that Zookeeper is using a deprecated serialization layer as its network protocol. Jute predates Apache Thrift or Apache Avro, and it only has code-gen for C and Java. Ideally Zookeeper would add a second network protocol, one which was either a spec for a nice binary protocol, or a more modern serialization framework like Thrift or Avro, which support many more languages. The ticket to change out Jute is here: https://issues.apache.org/jira/browse/ZOOKEEPER-102 https://issues.apache.org/jira/browse/ZOOKEEPER-102 But no one seems to actively be working on it.