corda/experimental/cpp-serializer/README.md
Katelyn Baker 913ba1d46e
NOTICK - Initial work on a non JVM (C++) serialiser (#5368)
Currently, it's more of a blob inspector than a full-blown
implementation, but this code does have the ability to understand a Corda
serialized blob and build a set of deserialisers to handle a blob. It
does this in the same way the native java implementation works by
interrogating the types (as per the definition in the envelope) and
building recursive type readers that are able to pull the relevant
information out of the byte stream.

Lots of future work to undertake, but as a starting point its a little
bit useful with the scope it could be made much more useful with some
work.
2019-08-15 21:16:20 +01:00

1.1 KiB

Corda Blob Inspection

This is a best effort attempt at a C++ implemention of the CORDA serialization framework in a non JVM language. The initial target is a working "blob inspector", that is an exe that can take a serialised blob from a vault (or other) and decode it using C++.

Currently Working

An implementation of a "blob inspector" that can take a serialised blob and decode it into a printable JSON format where that blob contains a constrained set of types. The current limitation with this implementation is that it does not understand associative containers (maps).

Fututre Work

  • Encode and decode of local C++ types
  • Decpdable encode of native types
  • Some schema generation from the JVM canonical source

Dependencies

  • qpid-proton
  • C++17
  • gtest
  • cmake

Setup

MacOS

  • brew install cmake
  • brew install qpid-proton

Google Test

Linux

  • sudo apt-get install cmake
  • sudo apt-get install libqpid-proton8-dev
  • sudi apt-get install libgtest-dev