This is Fudge-Cpp, a C++ implementation of the Fudge message encoding system. Full details of Fudge, including the specification can be found at http://fudgemsg.org/ In brief: Fudge is a hierarchical, typesafe, binary, self-describing message encoding specification. Hierarchical: Fudge messages aren't just a flat structure, they can be nested, creating larger, more complex data structures. Typesafe: Individual fields in a Fudge message are provided with their type data encoded, so that you can extract data safely. Binary: Fudge encoded data is binary, making it much smaller than text-based representations like XML or JSON. Self-Describing: Fudge messages contain metadata about the fields encoded (like a name or an ordinal), meaning that you can manipulate them without knowing the schema in advance. Message: Fudge was originally designed for encoding data to pass in a Message Oriented Middleware system, and so are more suited to the types of objects likely to be transmitted over a network connection than to a pure streaming mode. The Fudge-Cpp implementation is a lightweight wrapper around the Fudge-C library. Like Fudge-C it is intended to provide a native implementation of the specification while requiring as few external dependencies as possible. ----- Copyright (C) 2010 Vrai Stacey <vrai.stacey@gmail.com> This file is part of Fudge-Cpp. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Fudge specification description taken from the Fudge Messaging website, Copyright (C) 2009, OpenGamma Inc.