/iqserialization

Data serialization as it should be.

Primary LanguageCApache License 2.0Apache-2.0

IQSerialization - Data serialization as it should be

Travis CI status License Platforms

IQSerialization is an Objective-C library for iOS and Mac OS X that supports serializing your objects into a variety of standard formats for storage or communication.

This project is currently under active development and the APIs are not yet stable.

The aims of this project is to provide:

  • Serialization for typed classes to allow for static type checking
  • Pluggable replacement of serialization formats
  • High performance, low overhead suitable for mobile applications

The following formats are implemented:

  • JSON - Uses the yajl parser.

  • XML-RPC - Written in pure Objective-C using NSXMLParser

In addition, the following features are provided:

  • Convienient Base64 encoding/decoding API is provided as a category on the NSData class.
  • Splitting of streams into documents based by tokenizations. Useful when sending multiple objects over a single stream, such as JSON-RPC/XML-RPC over a web socket or when reading XML-based log files.

How to use it

Note

There is API documentation in the form of Doxygen comments, but I have yet to find a good way to generate a good documentation site automatically from this. There used to be documentation online but it required too much manual labor to be feasible, and I have now removed it. Suggestions are welcome!

Add IQSerialization.xcodeproj as to your project and set up the include directories. In your code,

#import <IQSerialization/IQSerialization.h>

....

NSDictionary* dict = [NSDictionary dictionaryWithJSONString:@"..."];

One of the aims of this library is to provide serialization support for your own classes.