Expand description
Helpers for reading message property-list payloads.
The main entry point is parse_ns_keyed_archiver(). For normal property lists, use plist_as_dictionary().
§Overview
The NSKeyedArchiver format is a property list-based serialization protocol used by Apple’s Foundation framework.
It stores object graphs in a keyed format, allowing for more flexible deserialization and better handling of
object references compared to the older typedstream format.
§Origin
Introduced in Mac OS X 10.2 as part of the Foundation framework, NSKeyedArchiver replaced NSArchiver
(typedstream) system as Apple’s primary object serialization mechanism.
§Features
- Pure Rust implementation for efficient and safe deserialization
- Support for both XML and binary property list formats
- No dependencies on Apple frameworks
- Robust error handling for malformed or invalid archives
Functions§
- extract_
array_ key - Extract an array from a collection key.
- extract_
bytes_ key - Extract bytes from a collection key.
- extract_
dict_ idx - Extract a dictionary from a collection index.
- extract_
dictionary - Extract a dictionary from a collection key.
- extract_
int_ key - Extract a real value from a collection key and coerce it to
i64. - extract_
string_ key - Extract a string slice from a collection key.
- get_
bool_ from_ dict - Extract a boolean from
{key: true}. - get_
data_ from_ dict - Extract a byte slice from
{key: Data(...)}. - get_
float_ from_ nested_ dict - Extract a float from
{key: {key: 1.2}}. - get_
owned_ string_ from_ dict - Extract an owned non-empty string from
{key: String("value")}. - get_
string_ from_ dict - Extract a non-empty string from
{key: String("value")}. - get_
string_ from_ nested_ dict - Extract a non-empty string from
{key: {key: String("value")}}. - get_
value_ from_ dict - Extract a value from
{key: value}. - parse_
ns_ keyed_ archiver - Deserialize an
NSKeyedArchiverproperty list by resolving UID references. - plist_
as_ dictionary - Extract a dictionary from table
plistdata. - rich_
link_ metadata_ and_ nested - Extract the shared
richLinkMetadatapayload and one nested metadata value.