Skip to content
Snippets Groups Projects
  • Roman Tsisyk's avatar
    37fef8eb
    Replace BER encoding with MsgPack everywhere · 37fef8eb
    Roman Tsisyk authored
    This commit completely changes the data format used by Tarantool.
    A new binary serialization format called MsgPack (http://msgpack.org)
    has been introduced to store tuples, keys, request members, etc.
    MsgPack supports various data types and hierarchical structures. Since
    tuple & keys format has been changed, the binary protocol is no more
    compatible with 1.5 clients.
    
    The list of major changes:
    
     * Add MsgPack library and unit tests as a submodule
     * Add Lua bindings for the library and unit tests for it
     * Update IPROTO to use MsgPack for all kinds of requests
     * Change struct tuple to use MsgPack Array instead of BER-encoded fields
     * Remove fixed offsets from tuples (cannot be supported by MsgPack)
     * Replace const char *key, key_part pairs with MsgPack Arrays
     * Rework comparators and indicies to support MsgPack'ed fields
     * Merge NUM and NUM64 types into the one single type (NUM)
     * Rewrite box_lua.cc functions to support MsgPack instead of BER
     * Rewrite tuple_update to support MsgPack instead of BER
     * Totaly remove varint32 functions from all modules
     * Rework lua_tofield and YAML encoder to properly support Lua tables
     * Modifie bootstrap files and system spaces to use the new format
     * Add MsgPack support to the test system via msgpack-python
     * Update tests to use proper data types and remove unneeded box.packs
    
    Tarantool 1.6 is the world's first MsgPack-based database!
    37fef8eb
    History
    Replace BER encoding with MsgPack everywhere
    Roman Tsisyk authored
    This commit completely changes the data format used by Tarantool.
    A new binary serialization format called MsgPack (http://msgpack.org)
    has been introduced to store tuples, keys, request members, etc.
    MsgPack supports various data types and hierarchical structures. Since
    tuple & keys format has been changed, the binary protocol is no more
    compatible with 1.5 clients.
    
    The list of major changes:
    
     * Add MsgPack library and unit tests as a submodule
     * Add Lua bindings for the library and unit tests for it
     * Update IPROTO to use MsgPack for all kinds of requests
     * Change struct tuple to use MsgPack Array instead of BER-encoded fields
     * Remove fixed offsets from tuples (cannot be supported by MsgPack)
     * Replace const char *key, key_part pairs with MsgPack Arrays
     * Rework comparators and indicies to support MsgPack'ed fields
     * Merge NUM and NUM64 types into the one single type (NUM)
     * Rewrite box_lua.cc functions to support MsgPack instead of BER
     * Rewrite tuple_update to support MsgPack instead of BER
     * Totaly remove varint32 functions from all modules
     * Rework lua_tofield and YAML encoder to properly support Lua tables
     * Modifie bootstrap files and system spaces to use the new format
     * Add MsgPack support to the test system via msgpack-python
     * Update tests to use proper data types and remove unneeded box.packs
    
    Tarantool 1.6 is the world's first MsgPack-based database!