* <code>[...]</code>: binary data. All 00 and FF bytes are prefixed with FF.
===Authentication(via [http://tools.ietf.org/html/rfc2195 cram-md5])===
# Client connects to server socket
# Server sends timestamp: <br/><code>{timestamp} \0</code># Client sends username and hashhashed password/timestamp: <br/><code>{username} \0 {md5(md5(password) + timestamp)} \0</code>
# Server sends <code>\0</code> (success) or <code>\1</code> (error)
===Client Request===
The following byte sequences are sent from the client: - command: COMMAND -> {command} \0 - create: CREATE -> \8 {name} \0 [input] \0 - add: ADD -> \9 {name} \0 {path} \0 [input] \0 - watch: WATCH -> \10 {name} \0 - unwatch: UNWATCH -> \11 {name} \0 - replace: REPLACE -> \12 {path} \0 [input] \0 - store: STORE -> \13 {path} \0 [input] \0 QUERY: INIT - > \0 {query: start } \0 CLOSE -> \0 2 {queryid} \0 bind BIND -> \3 {id} \0 {variable} \0 {value} \0 {type} \0 next ITER -> \1 4 {id} \0 execute EXECUTE -> \5 {id} \0 info INFO -> \6 {id} \0 options OPTIONS -> \7 {id} \0 close -> \2 {id} \0
===Server Response===
The server replies with the following byte sequences: - command: COMMAND -> {result} \0 {info} \0 \0 - create: CREATE -> {info} \0 \0 - add: ADD -> {info} \0 \0 error ERROR -> \0 {error} \0 \1 - queryQUERY: start INIT -> {id} \0 \0 bind CLOSE -> \0 \0 next BIND -> {result} \0 \0 execute ITER -> {result} \0 \0 info EXECUTE -> {result} \0 \0 options INFO -> {result} \0 \0 close OPTIONS -> {result} \0 \0 error ERROR -> \0 \1 {error} \0
===Examples===