Twinkle
UDP-based, light key-value store.
Usage
Use docker. Remenber to open UDP port.
$ docker run -d -p 3000:3000/udp kirisaki:twinkle
Docker repositry is https://hub.docker.com/repository/docker/kirisaki/twinkle
Client libraly
Protocol
The protcol of twinkle is quiet simple. Only send binary messages expressed following. Its byte-order is big endian.
Ping
Request
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| 0x01 | UUID
| |
+--------+--------+--------+------...
|
|
...------+
Response
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| 0x01 | UUID
| |
+--------+--------+--------+------...
|
|
...------+
Get
Reuest
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| 0x02 | UUID
| |
+--------+--------+--------+------...
| Key |
| Length | key octets ...
...------+-----------------+-----...
Response(key found)
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| 0x01 | UUID
| |
+--------+--------+--------+------...
|
| value octets
...------+--------+------...
Response(key not found)
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| 0x02 | UUID
| |
+--------+--------+--------+------...
|
|
...------+
Set
Request
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| 0x03 | UUID
| |
+--------+--------+--------+------...
| Key |
| Length | key octets ...
...------+-----------------+-----...
|
| value octets ...
...------+--------------...
Response
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| 0x01 | UUID
| |
+--------+--------+--------+------...
|
|
...------+
Unset
Request
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| 0x04 | UUID
| |
+--------+--------+--------+------...
| Key |
| Length | key octets ...
...------+-----------------+-----...
Response
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| 0x01 | UUID
| |
+--------+--------+--------+------...
|
|
...------+