| Crates.io | monero-epee |
| lib.rs | monero-epee |
| version | 0.2.0 |
| created_at | 2025-09-15 23:59:33.287178+00 |
| updated_at | 2025-09-30 03:13:04.161039+00 |
| description | A library for working with `epee`-encoded data |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1840713 |
| size | 33,318 |
epee is a bespoke serialization format seen within the Monero project without
any official documentation. The best specification is available here.
This library implements the epee 'portable storage' encoding (itself referred
to as EPEE throughout this library), with the following exceptions:
Array type (type 13) as it's unused in practice and
lacking documentationepee library itself. Our
definition of compatibility is explicitly if we can decode anything encoded
by the epee library and all encodings we produce may be decoded by the
epee library. We do not expect completeness, so some successfully decoded
objects may not be able to be encoded, and vice versa.At this time, we do not support:
monero-epee-traits crate.Instead, we support indexing epee-encoded values and decoding individual
fields in a manner comparable to serde_json::Value (albeit without
allocating, recursing, or using a proc macro). This is sufficient for basic
needs, much simpler, and should be trivial to verify won't panic/face various
exhaustion attacks compared to more complex implementations.
Because of this, we are also able to support no-std and no-alloc, without
any dependencies other than core, while only consuming approximately one
kibibyte of memory on the stack. We also have no unsafe code.
For a more functional library, please check out
cuprate-epee-encoding.