Module: Rubcask::Protocol
- Included in:
- Server::AbstractServer, Server::Client, Server::Pipeline, Server::Threaded
- Defined in:
- lib/rubcask/protocol.rb
Overview
Rubcask protocol is inspired by Redis, but is even simpler implementation-wise The format of response is
"#{message.byte_size}"\r\n#{message}
eg: "2\r\nOK"
The format of request it is
"#{message.byte_size}\r\n#{method}\r\n#{first_argument.byte_size}\r\n#{first_argument}
eg: "13\r\nget\r\n5\r\nlorem"
Constant Summary collapse
- OK =
Success
"ok"
- NIL =
Repesents no data
"nil"
- ERROR =
Error message
"error"
- PING =
"ping"
- PONG =
"pong"
- SEPARATOR =
"\r\n"
Class Method Summary collapse
- .create_call_message(method, *args) ⇒ String
-
.encode_message(message) ⇒ String
Returns the provided message with the header of the start.
-
.error_message ⇒ String
Encoded “error” messege.
-
.nil_message ⇒ String
Encoded “nil” messege.
-
.ok_message ⇒ String
Encoded “ok” messege.
-
.ping_message ⇒ String
Encoded “ping” messege.
-
.pong_message ⇒ String
Encoded “pong” messege.
Class Method Details
.create_call_message(method, *args) ⇒ String
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/rubcask/protocol.rb', line 42 def (method, *args) buffer = (+"").b buffer << method buffer << SEPARATOR args.each do |arg| buffer << (arg) end (buffer) end |
.encode_message(message) ⇒ String
Returns the provided message with the header of the start
31 32 33 34 35 36 37 |
# File 'lib/rubcask/protocol.rb', line 31 def () buffer = (+"").b buffer << .bytesize.to_s buffer << SEPARATOR buffer << buffer end |
.error_message ⇒ String
Note:
This method is autogenerated
Returns Encoded “error” messege.
70 |
# File 'lib/rubcask/protocol.rb', line 70 "error" |
.nil_message ⇒ String
Note:
This method is autogenerated
Returns Encoded “nil” messege.
69 |
# File 'lib/rubcask/protocol.rb', line 69 "nil" |
.ok_message ⇒ String
Note:
This method is autogenerated
Returns Encoded “ok” messege.
68 |
# File 'lib/rubcask/protocol.rb', line 68 "ok" |
.ping_message ⇒ String
Note:
This method is autogenerated
Returns Encoded “ping” messege.
71 |
# File 'lib/rubcask/protocol.rb', line 71 "ping" |
.pong_message ⇒ String
Note:
This method is autogenerated
Returns Encoded “pong” messege.
72 |
# File 'lib/rubcask/protocol.rb', line 72 "pong" |