**CAUTION**: This release features a significant re-implementation (with additional, new functionality) of the memory synchronization protocol, ``memsync``.
As a part of it, overcoming old limitations, its syntax changed - effectively **BREAKING BACKWARDS COMPATIBILITY** in almost all cases.
Please check the updated documentation, examples and tests for details.
- API: `memsync` syntax for custom length functions has been changed. `_f` becomes obsolete. `f` expects a string, which can be parsed into a function.
- API: `memsync` syntax for NULL-terminated strings (both `c_char` and `c_wchar`, i.e. Unicode, buffers) has been simplified: `n` must be set to `True` indicating a NULL-terminated string. `l` becomes optional in this context.
- API: `memsync` syntax for Unicode strings (buffers) has been simplified: `w` must be set to `True` instead of the length of `ctypes.c_wchar`.
- FEATURE: `memsync` can handle pointers to memory, which was allocated by a DLL, see issue 37.
- FEATURE: `memsync` can target return values or elements within, see issue 40.
- FEATURE: `memsync` can be applied to callback functions, see issue 41 - support at this stage is largely untested.
- FEATURE: `memsync` became more memory efficient and slightly faster.