Coda-C Property List Library
This library provides a classed system of objects that model the Apple Propery List or 'plist'. A plist is any one of the supported objects where containers reference supported objects, but is most often a Dictionary. Plists are easy to create and modify programmatically, and even easier to save and load from disk.
- Supports XML serialization in 'plist' or 'codalist' formats
- Supports JSON, and allows JSON5 input
- Supports Binary Property List serialization
- Native C object types.
- Retain counted objects simplify changes to plists
- A pure C source and API for increased portability
- gcc/clang
- Coda-C Library
You need a modern C compiler. Testing has been done for 64-bit Apple and Linux systems with gcc/clang. A Makefile is provided to install the dynamic library, headers, and 'coda-list' in /usr/local or /usr for Linux. Note: For Linux, "sudo ldconfig" should be run after "sudo make install". After installing but before cleaning, "make test" will run two small test batteries to verify the products.
- "<key/>" is not allowed for blank dictionary keys.
- XML attributes like aaa in ( <true aaa="x" /> ) are not allowed.
- Set is serialized to Array for Apple XML.
- <null> is encoded as { CF$Null : true }.
- Single leaf plists must "quote" the string.
- <data> is encoded as { CF$Data : "BASE64 data..." }.
- <uid> is encoded as { CF$UID : ival }.
- <date> is encoded as { CF$Date : "YYYY-MM-DDThh:mm:ssZ" }.
- Special encodings may be disabled.
- \u0000 is mapped to 0x10FFFF.
This program slices and dices plists of various formats. Each argument to this program is an instruction for inspecting, loading, saving, or altering plists, etc.
- Create specific new compoents or add JSON branches
- Combine and prune plists
- BASE-64 data extraction and file insertions
- Easily convert formats
- A pure C source for increased portability
This program is built as a command line tool while making the PList library.
- Single leaf <data> plist save as raw data.
- Use 'man coda-list' for the online manual.