MessagePackプロトコル再考
C++ の実装の話ですが、構造体に直接シリアライズ・デシリアライズでき、無駄なコピーが起こらないように、テンプレートを駆使して実装されており、JSON とは比べものにならない速さ
// データ構造 struct mystruct { std::string m_str; std::vector<int> m_vec; MSGPACK_DEFINE(m_str, m_vec); }; int main(void) { mystruct original_data; mystruct clone_data; // シリアライズ msgpack::sbuffer sbuf; msgpack::pack(sbuf, original_data); // デシリアライズ msgpack::unpacked msg; msgpack::unpack(&msg, sbuf.data(), sbuf.size()); msgpack::object obj = msg.get(); obj.convert(&clone_data); }