#BSONKit
The BSONKit is an Objective-C framework for decoding binary JSON according to the BSON specification http://bsonspec.org
This is a modification of the original BSONKit created by Mattias Levin: https://github.com/mattiaslevin/BSONKit I made a lot of bug fixes and cleanups. This is tested on iOS, but should work on Os-X as well.
It doesn't use ARC, but could be easily converted to use it.
####Type conversion rules
BSON types are converted into Objective-C types according to the table below:
| BSON type | Objective-c type | 
|---|---|
| Document | NSDictionary | 
| Floating point | double | 
| UTF-8 string | NSString | 
| Array | NSArray | 
| Binary data | NSData | 
| ObjectId | NSData | 
| Boolean | BOOL | 
| UTC datestamp | long long | 
| Null value | NSNill | 
| Regular expression | NSArray with two objects - regexp pattern (NSString) and options (NSString) | 
| Javascript code | NSString | 
| Symbol | NSString | 
| Javascript code with scope | NSArray with two objects - the Javascript code (NSString) and scope variables (NSDictionary) | 
| 32-bit integer | NSInteger | 
| Timestamp | long long | 
| 64-bit integer | long long | 
| Min key | TBD | 
| Max key | TBD | 
##Interface
The interface for performing the decoding is very simple:
// Get a decoder instance
+ (id)decoder;
// Start decoding a BSON byte array
- (id)decode:(NSData*)source withError:(NSError**)error;There is also a convenience NSData category:
// Decoding a BSON byte array
- (id)decodeBSONWithError:(NSError**)error;