#marshal #ruby #deserialize #serialization

thurgood

Full (de)serialization support for Ruby's Marshal format

3 unstable releases

0.2.1 Nov 20, 2021
0.2.0 Nov 17, 2021
0.1.0 Sep 7, 2021

#1383 in Encoding


Used in street-cred

MIT/Apache

87KB
2K SLoC

Thurgood   Latest Version

Thurgood is a Rust library that implements (de)serialization for Ruby's Marshal format.

The primary use-case of Thurgood is to load some data, manipulate parts of it, then serailize the modified data. This includes game saves, stored Rails data, or anything else stored using Marshal.dump. Because of this, Thurgood places a high priority on the ability to deserialize and re-serialize Marshal streams with as little information-loss as possible. In many cases Thurgood can deserialize and re-serialize a stream and produce the same output, byte for byte (see the documentation for exceptions).

Thurgood also provides a convenient method to convert an RbAny into a serde_json::Value making it easier to explore or visualize unfamiliar data. Unfortunately this conversion is one-way, and can fail. See the documentation for more information.

Status

Thurgood is currently in alpha. It's been successfully tested on some use-cases, but needs a more extensive suite of unit tests. Furthermore the separation of thurgood::rc and thurgood::arc is subject to change, as is the use of reference-counting internally.

Dependencies

~1.8–2.6MB
~52K SLoC