Fast Serialization between C# and C++

Introduction

This is a binary serialization system designed for fast execution and low memory usage.

It's principally intended to be used to work around the limitation in the marshalling system which passes values between managed and native code, whereby C# generic containers cannot be passed as parameters.

It can also be used to save/load persistent data on the same machine.

Status

Currently in draft form, but fully functional with no known bugs.

The API and may change a little.  The binary format will change as I optimize further.

It's currently byte-order safe, so the serialized data could be transmitted to another machine, but that feature is not required so will likely be removed in the interests of speed.

Features

Can (de)serialize:
  • Fundamental types.
  • Strings.
  • Complex types.
  • Polymorphic types, whose type is not known at compile time.
  • Containers.

Source Code

Available on github, here:

    https://github.com/asji/qblob

No comments:

Post a Comment