serde-RESP

Redis RESP protocol serialization and deserialization with serde. RESP Specification

To use the crate, add this to your Cargo.toml: [dependencies] serde-resp = "0.3.0"

Usage

IMPORTANT: Do NOT serialize and deserialize with any other types besides RESP! You may get panic or incorrect results!

Here are the RESP types and their corresponding Rust types for serde.

To serialize, use ser::tostring or ser::towriter.

To deserialize, use de::fromstr or de::fromreader or ser::frombufreader.

For usage examples, refer to https://docs.rs/serderesp/0.3.0/serderesp/enum.RESPType.html

Macros

Since 0.3.0, you can start using very handy macros! Here is a demo:

rust use serde_resp::{array, array_null, bulk, bulk_null, de, err_str, int, ser, simple, RESP}; let resp_array = array![ simple!("simple string".to_owned()), err_str!("error string".to_owned()), int!(42), bulk!(b"bulk string".to_vec()), bulk_null!(), array![ simple!("arrays of arrays!".to_owned()), array![simple!("OK ENOUGH!".to_owned())], ], array_null!(), ]; let serialized = ser::to_string(&resp_array).unwrap(); assert_eq!("*7\r\n+simple string\r\n-error string\r\n:42\r\n$11\r\nbulk string\r\n$-1\r\n*2\r\n+arrays of arrays!\r\n*1\r\n+OK ENOUGH!\r\n*-1\r\n", serialized); let deserialized = de::from_str(&serialized).unwrap(); assert_eq!(resp_array, deserialized);

Documentation

https://docs.rs/serderesp/0.3.0/serderesp