Skip to content

Gabrielopesantos/imkv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

imkv

A simple in-memory TCP key-value server written in Zig, using Linux epoll for non-blocking I/O. Messages are framed with a 4-byte little-endian length header. The text payload inside each frame uses \r\n as the command delimiter.

New connections must authenticate via a proof-of-work handshake before issuing any commands. The client sends CONNECT, the server replies with a CHALLENGE containing a random 128-bit hex nonce and a difficulty (default: 20 leading zero bits). The client must find an integer counter such that SHA-256(nonce:counter) has at least that many leading zero bits, then send it as POW <counter>. On success the session becomes ready for PING, PUT, GET, and DELETE commands.

References:

Licensed under the MIT License.

About

A simple in-memory TCP key-value server written in Zig, using Linux epoll for non-blocking I/O.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors