tinyresp

Crates.iotinyresp
lib.rstinyresp
version0.2.1
sourcesrc
created_at2024-01-29 20:26:06.948126
updated_at2024-02-29 22:13:31.721471
descriptionA tiny Rust library implementing the Redis Serialization Protocol (RESP)
homepage
repositoryhttps://github.com/lmammino/tinyresp
max_upload_size
id1119322
size40,720
Luciano Mammino (lmammino)

documentation

https://docs.rs/tinyresp

README

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.

Commit count: 0

cargo fmt