lmammino / tinyresp

A tiny Rust library implementing the Redis Serialization Protocol (RESP)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tinyresp

Build Status codecov Crates.io docs.rs

A tiny Rust library implementing the Redis Serialization Protocol (RESP)

A simple parser for the RESP protocol (REdis Serialization Protocol).

For an overview of the procol check out the official Redis SErialization Protocol (RESP) documentation

This library is written using nom and therefore uses an incremental parsing approach. This means that using the [parse] method will return a Result containing a tuple with 2 elements:

  • The remaining input (which can be an empty string if the message was fully parsed)
  • The parsed value (if the message was fully parsed)

Example

use tinyresp::{parse_value, Value};

let message = "*2\r\n$5\r\nhello\r\n$5\r\nworld\r\n";
let (remaining_input, value) = parse_value(message).unwrap();
assert_eq!(remaining_input, "");
assert_eq!(value, Value::Array(vec![
    Value::BulkString("hello"),
    Value::BulkString("world")
]));

Contributing

Everyone is very welcome to contribute to this project. You can contribute just by submitting bugs or suggesting improvements by opening an issue on GitHub.

License

Licensed under MIT License. © Luciano Mammino, Roberto Gambuzzi.

About

A tiny Rust library implementing the Redis Serialization Protocol (RESP)

License:MIT License


Languages

Language:Rust 100.0%