| Crates.io | alox-48-derive |
| lib.rs | alox-48-derive |
| version | 0.3.2 |
| created_at | 2024-05-30 00:11:02.429072+00 |
| updated_at | 2024-06-01 01:00:23.859451+00 |
| description | ruby marshal data deserializer |
| homepage | |
| repository | https://github.com/Speak2Erase/alox-48 |
| max_upload_size | |
| id | 1256339 |
| size | 28,647 |
alox-48 (short for aluminum oxide 48) is a crate for deserializing and serializing as well Ruby's Marshal data format, using a custom data format like serde.
alox-48 intends to provide almost perfect round-trip deserialization, with some exceptions:
Originally this crate relied on nightly to extend serde, using min_speciailization.
Unfortunately that had many shortcomings and the deserializer would frequently choke on valid inputs and the serializer would spit out invalid data.
Most issues revolved around symbols- ruby uses @ prefixed symbols for instance variables, but also accepts variables without the prefix, silently discarding them.
I'm working on a separate serde adapter that can interface serde's data format with alox's, but that looks like it'll be nightly only.