| | 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 | * 多言語対応のため実装をシンプルに保ちたい - その範囲内で対応できることがあれば。 |