| 317 | |
| 318 | == MessagePack Project == |
| 319 | |
| 320 | RPC とシリアライズ |
| 321 | |
| 322 | === MessagePack とは? === |
| 323 | |
| 324 | "It's like JSON, but very fast and small." |
| 325 | |
| 326 | * 論理的には JSON だが |
| 327 | * それをバイナリに置き換えてデータ量をひたすら小さくしたもの |
| 328 | * C++、 Ruby を始め、さまざまな言語で利用可能になっている。 |
| 329 | |
| 330 | === プロジェクト成り立ち === |
| 331 | |
| 332 | 何度も似たようなプロトコルを設計… RPC ライブラリが欲しい! |
| 333 | |
| 334 | 1. 汎用的なバイナリプロトコルを実装 |
| 335 | * MessagePack C++/Ruby版 |
| 336 | 1. kumofs の RPC に採用 |
| 337 | 1. kumofs の RPC 機能全体を切り出して汎用化 |
| 338 | 1. オープンソース・各種言語版! |
| 339 | 1. 国際展開中!!! |
| 340 | |
| 341 | === 質疑応答 === |
| 342 | |
| 343 | * エンディアン |
| 344 | * BE 統一 |
| 345 | * 文字コード |
| 346 | * UTF-8 統一 |
| 347 | * float 配列とかが欲しい… |
| 348 | * 悩ましい |
| 349 | * バイト列としてパックすれば一応サイズ縮小できるが… |
| 350 | * 検討してみます |
| 351 | * C++ 版はイテレータ対応して欲しい |
| 352 | * 次バージョンで実装したい |
| 353 | * 分散システムは kumofs とは別のもの? |
| 354 | * エラー処理 |
| 355 | * タイムアウトは実装済み: 時間を指定する |
| 356 | * それ以外はひとくくりに「それ以外のエラー」 |
| 357 | * 詳細情報が取れるようにしたい ...検討中 |
| 358 | * エラーは例外ではなくオプションでも取れるようにして欲しい。 |
| 359 | * MessagePack を圧縮するのに適したアルゴリズムは? あるいは出現頻度の多い値への圧縮対応など。 |
| 360 | * 圧縮・展開が処理のオーバーヘッドになっては本末転倒 |
| 361 | * 多言語対応のため実装をシンプルに保ちたい - その範囲内で対応できることがあれば。 |