Gracht Protocols/RPC 2.0.0
This release is a very large release compared to V1.0. The language parser has been rewritten, the language itself is now a custom language instead of being XML derivative. The core runtime has been extended and changed to fit the new protocol. The library now uses some form of dynamic allocations based on the type of data sent. Only dynamic allocations are used during deserialization if it's sending a variable (: unknown length) message length, otherwise no dynamic allocations are performed during runtime.
Both the client and server now makes use of the memory arena implementation, which is still rather naive, but it provides a quick way of allocating and deallocating memory for messages. No optimizations are really present in the library at this moment yet, but feature-wise we are where we want to be for starters.
Version 2 now features:
- Full support for data-structures
- Full support for custom defined types that are imported from headers and namespaces
- Full support for variadic data messages (uses the [] brackets to indicate 1..N occurrences)
- Improved support for batching of calls
- Improved support for asynchronous calls.
- Server has improved memory footprint.
- Client uses more memory, but behaves faster.