Addressing
Offsets, not pointers
Every reference inside the store is a displacement from the base of the heap. Growth reallocates that base — and every reference in the image is still correct, because none of them named an address in the first place.
Persistence
Save is a copy
The store is already contiguous and already self-describing, so writing it is writing bytes. Save goes to a temporary file and renames over the target, so a reader never sees a half-written store.
Shape
Fields, children, attributes
A field carries a name, a typed value, an ordered set of children and a set of @-qualified attributes. Native types, strings, blobs, XML and images all live in the one structure, addressed by field and by path.
Containers
Lists, vectors, stacks, cursors
The container types are not adapters over the store; they are laid out inside its heap. A cursor survives mutation of the ring it is scanning, which is what makes by-name traversal of a live store workable.
Portability
One image, two widths
An endian sentinel travels with every image and doubles as its layout generation, so a store written under one byte order or addressing width is recognised — rather than silently misread — by another.
Reach
C++, C, Java, COM
A C++ class API for code built with the same toolset, and a flat extern "C" ABI of 282 entry points for everyone else — C, Java through Panama, .NET through P/Invoke, FUSE front ends. MsgFacade wraps the object model without macros, and MsgcoreCom puts a store one CreateObject away from PowerShell, VBScript and C#. See the facade page.
Diagnostics
One event system
P2Pevent carries errors and diagnostics as throwable C++ exceptions, or as data attached to a store — the same object TargetCore routes across a network.
Licence
Apache 2.0
Msgcore is licensed under the Apache 2.0 licence, alongside TargetCore. The integration libraries and reference applications are already free downloads with full source.
Scope
What it is not
The store is not internally synchronised — one store is serialised by its caller — and it has not been reviewed as a network-facing parser. Treat an image from a source you do not control as unsafe to load.