並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 211件

新着順 人気順

MessagePackの検索結果1 - 40 件 / 211件

  • MessagePack: It's like JSON. but fast and small.

    It's like JSON. but fast and small. MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves. Next: MessagePack is supported by over 50 programming languages and environm

    • Geekなぺーじ:MessagePackがIETF標準化に巻き込まれてる件について

      ここ数日、MessagePackがIETFにおける標準化に巻き込まれてザワザワしています。 何が起きているかというと、MessagePackプロジェクトとは関係が無い第三者がIETFで派生物の標準化を進めようとしています(binarypack、Informational RFCとして)。 binarypackは、自らをMessagePackの派生であるとしながらも、MessagePackとの後方互換性が無いものです。 MessagePack is in danger! binarypackのInternet-Draftを提出しているのは、coreと6lowpanのchairです。 Chairであるかどうかが議論そのものに与える影響はそこまで大きくないとも言えますが、少なくともIETFでの話の進め方に精通した人物であることは確かです。 ただ、今回のInternet-Draftは、その人物がC

      • Introducing the MessagePack - Blog by Sadayuki Furuhashi

        高速なシリアライズライブラリ MessagePack の新しいWebサイトをオープンしました! The MessagePack Project Ruby Inside でも取り上げられたようです: MessagePack: Efficient, Cross Language Binary Object Serialization 昨今、効率を重視したシリアライズライブラリが数多く登場しています。特に、大量の処理を行う大規模な基盤システム向けに開発されていることが多いようです。 少し探してみるだけでも、次のような事例が見つかります: BERT(githubで採用:Introducing BERT and BERT-RPC) Thrift(Facebookが開発:Thrift: Scalable Cross-Language Services Implementation) Avro(Hado

          Introducing the MessagePack - Blog by Sadayuki Furuhashi
        • バイナリシリアライズ形式「MessagePack」 - Blog by Sadayuki Furuhashi

          Googleが公開したバイナリエンコード手法であるProtocol Buffersは、クライアントとサーバーの両方でシリアライズ形式を取り決めておき(IDL)、双方がそれに従ってデータをやりとりするようにします。 この方法では高速なデータのやりとりができる反面、IDLを書かなければならない、仕様を変えるたびにIDLを書き直さなければならない(あらかじめしっかりとIDLを設計しておかないとプログラミングを始められない)という面倒さがあります。 ※追記:Protocol BuffersのデシリアライザはIDLに記述されていないデータが来ても無視するので(Updating A Message Type - Protocol Buffers Language Guide)、仕様を拡張していっても問題ないようです。 一方JSONやYAMLなどのシリアライズ形式では、何も考えずにシリアライズしたデータ

            バイナリシリアライズ形式「MessagePack」 - Blog by Sadayuki Furuhashi
          • MessagePackが文字列とバイナリをわけないのは問題?

            You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

              MessagePackが文字列とバイナリをわけないのは問題?
            • Treasure Dataを支える技術 - MessagePack編

              Treasure Dataの基本データフォーマットであるMessagePackと、msgpack-javaでの最適化について紹介します。

                Treasure Dataを支える技術 - MessagePack編
              • phpのserializeを使うより高速でサイズもコンパクトに仕上げる「MessagePack」とPHP拡張:phpspot開発日誌

                phpのserializeを使うより高速でサイズもコンパクトに仕上げる「MessagePack」とPHP拡張 2010年12月15日- The MessagePack Project phpのserializeを使うより高速でサイズもコンパクトに仕上げる「MessagePack」とPHP拡張。 結構前のエントリのご紹介なので知っている人も多いと思うのですがご紹介。 phpには serialize という関数があって、配列等の複雑なデータも文字列にして、ファイル等に保存し、後ほど unserialize 等で変数に戻せて便利なのですが、MessagePackとそのPHP拡張を使えば、より高速で、serialize後のデータも小さくできます。 MessagePack自体はkumofsの内部で使われていて、PHP以外にもc++, erlang, haskell, java, perl, pyth

                • MessagePackのIETFへの提案に関する困惑 - たごもりすメモ

                  MessagePackというオープンソースプロジェクトの現状と IETF による標準化について、それが果たして正しいのか、と困惑せざるをえない事態が起きているので、それについて簡単に書く。何が起きているのか知らない人々に少しでも知ってもらえたら嬉しい。 なお、自分はMessagePackのユーザであって開発者ではない。MessagePackを使ったコードを書いて動かしているが、MessagePackそのもののデータフォーマットについて詳細まで知っているわけではないし、MessagePackの改善については特にいいアイデアを出せる気もしない。 現バージョンのMessagePackについてとりたてて不満はなかったが、最近文字列型を加えよう、あるいはもっと楽に文字列を扱えるようにしよう、という話が出てきた。JSON的に楽に扱えて更にバイナリデータを投入できるフォーマットの需要そのものは理解できる

                    MessagePackのIETFへの提案に関する困惑 - たごもりすメモ
                  • MessagePackフォーマット仕様にTimestamp型を追加 - Blog by Sadayuki Furuhashi

                    MessagePackフォーマット仕様のPull Request #209をマージし、MessagePackにTimestamp型を追加しました。 ※この記事の英語版は XXX にあります(翻訳中) Extension型の型コード -1 として定義されているため、後方互換性が維持されています。つまり、既にExtension型に対応しているデシリアライザであれば、Timestamp型を使用して作成されたデータを、Timestamp型に対応していない古いデシリアライズで読み出すことができます。 新しいTimestamp型には timestamp 32、timestamp 64、timestamp 96 の3つのフォーマットがあり、よく使う値をより少ないバイト数で保存できるようになっています。例えば、1970年〜2106年までの時刻で、秒までの精度しか持たない時刻であれば、合計6バイトで保存でき

                      MessagePackフォーマット仕様にTimestamp型を追加 - Blog by Sadayuki Furuhashi
                    • 高速メッセージングシステムMessagePack - 楽天テクノロジーカンファレンス2010 - Blog by Sadayuki Furuhashi

                      もはや先月のことですが、楽天テクノロジーカンファレンス2010で発表してきました。 MessagePackについて、かなり詳しく紹介しています。 MessagePack Rakuten Technology Conference 2010View more presentations from frsyuki. Ustream.tvの録画はこちら MessagePackの概要(7ページ目〜) MessagePack は、It's like JSON, but very fast and small. のフレーズの通り、「JSONみたいに使えるけど速くて小さい」シリアライズ形式です。 JSONがテキスト形式のシリアライズフォーマットであるのに対し、MessagePackは様々な工夫を取り入れたバイナリ形式のシリアライズフォーマットです。 MessagePack-RPC は、MessagePa

                        高速メッセージングシステムMessagePack - 楽天テクノロジーカンファレンス2010 - Blog by Sadayuki Furuhashi
                      • WebSocketでブラウザにプッシュ配信する - MessagePack-RPC+Rev-WebSocket - Blog by Sadayuki Furuhashi

                        先日、WebSocketのサーバライブラリ Rev-WebSocket をリリースしました。 前回のエントリではブラウザ同士で通信するチャットアプリケーションを紹介しましたが、実際にはTwitterクローラやWebアプリケーションなど、別のプログラムと連携してブラウザにプッシュ配信したくなると思います。 つまり↓このように、任意のプログラムからWebSocketサーバを経由して、ブラウザにデータをプッシュ配信します: プッシュ配信したいアプリケーションと WebSocket サーバの間は MessagePack-RPC で繋ぎます。 Rev-WebSocket と MessagePack-RPC は相性が良く、簡単に統合することができます*1。 アプリケーションから WebSocket サーバを経由してブラウザにデータを配信するコードは、↓このようになります。 require 'rubyg

                          WebSocketでブラウザにプッシュ配信する - MessagePack-RPC+Rev-WebSocket - Blog by Sadayuki Furuhashi
                        • neue cc - C#(.NET, .NET Core, Unity, Xamarin)用の新しい高速なMessagePack実装

                          と、いうものを作りました。MessagePackのC#版です。以前に作ったZeroFormatterのコードをベースに、バイナリの読み書きをMsgPackのフォーマットに差し替えたものになります。MsgPackのライブラリはすでにあるじゃん(MsgPack-Cli)!ってことなんですが、パフォーマンスにかなり差があります。 neuecc/MessagePack-CSharp JSON.NET(スタンダードで、豊富なAPIを持ってる)に対するJil(スピード特化、APIは必要十分はあるけれどJSON.NETほどではない)のようなものと思ってください。とはいえ、生のまま使っても問題は出ない(デフォルトのままで最高速が出るようにチューニングしてある)でしょうし、カスタマイズの口自体も十分用意してあります!詳しくは「拡張」の項で説明しますが、既に私自身が他のライブラリへの対応・インメモリデータベー

                          • 並列メッセージングフレームワーク「MessagePack-RPC for C++」リリース - Blog by Sadayuki Furuhashi

                            分散KVS kumofs のコードは、全体で約2万行です。 そのうち、ネットワークI/Oやプロトコルに関するコードは約1万行で、全体の約半分を占めています。 並列イベント駆動I/Oフレームワーク「mpio」リリース ネットワークアプリケーションを実装する上で、もっとも大きな障壁は、ネットワークI/Oとプロトコルです。 では、それが両方ともフレームワークでサポートされ、コードを書く必要が無くなったらどうでしょうか? 54行で簡単な分散KVSを実装したり、140行で分散リアルタイム検索エンジンを実装することができます。すなわち、インデックス作成サーバ、検索サーバ、DBサーバなど、多数のサーバが連携し、スケールアウトの恩恵を得ることができるネットワークアプリケーションを、1台のホスト上で動作する並列アプリケーションとほぼ同じように書くことができます。 実装上の問題から解放されれば、並列性や耐障害

                              並列メッセージングフレームワーク「MessagePack-RPC for C++」リリース - Blog by Sadayuki Furuhashi
                            • ApacheのアクセスログをMessagePack形式で出力するためのモジュールを作りました : DSAS開発者の部屋

                              Apacheモジュールのログ出力、こんどはMessagePack版を作成しました。続いてはこちらをご紹介します。 Apacheのアクセスログを使い、ユーザアクセスの集計やパターン解析などというのは一般にどこでもやられていることだと思います。通常のアクセスログはテキストファイルなので、集計を行うためにスクリプト上で扱える変数・オブジェクト化が必要になりますね。1行ごとの各ログ項目を取り出すのに正規表現を使ったり、cutやawkなどを使い空白で分割するなど、色々工夫されていることと思います。 今回、MessagePack版のアクセスログ出力をやってみようと思い立ったのは、アクセスログをあらかじめ構造化済みの状態で保存しておければ、読み込みの際の解析する手間を省くことで解析処理の高速化が期待できるのではないか、そう考えたためです。MessagePackであれば、PythonやRubyはじめ様々な

                                ApacheのアクセスログをMessagePack形式で出力するためのモジュールを作りました : DSAS開発者の部屋
                              • MessagePack-RPCのプロトコル仕様(ドラフト)と実装例 - Blog by Sadayuki Furuhashi

                                以前に書いた MessagePack RPC プロトコル は少し古くなってしまったので、ここでまとめ直しておこうと思います。 MessagePack-RPCのプロトコルは、非同期型の呼び出しができる点(非同期プロトコル)が大きな特徴となっています。複数のサーバが相互に通信し合ったり、通信と計算をオーバーラップさせて高速化を図ったりするような、高度なネットワークアプリケーションを実装しやすくなります。 RPCライブラリと言うよりも、シンプルな非同期メッセージングライブラリと言えます。 ここではMessagePack-RPCのプロトコル仕様と、以上の特徴を活かせるような実装例も合わせて紹介します。 基本仕様:MessagePack-RPC specification version 0.1 MessagePack-RPCのプロトコルは、メソッドの呼び出すRequestメッセージと、それに対する

                                  MessagePack-RPCのプロトコル仕様(ドラフト)と実装例 - Blog by Sadayuki Furuhashi
                                • XML より JSON より MessagePack が便利です

                                  こんにちは。開発担当の森本です。 今回は、Fenrir Pass Connect を支える技術にちょっと関係のある、 web などを介してデータを交換するときの話をしたいと思います。 データ構造の共通化 → 実装も共通化できる プログラム間、端末同士、Web 経由などでデータを送ったり送られたりするときに、データは決まったフォーマットで送られる必要が有ります。 たとえば、今表示しているこのページでは、本文は HTML、画像は PNG などのバイナリフォーマット、web API との連携などは JSON や XML、スタイルシートや JavaScript はそれぞれ独自のテキストフォーマットが使用されています。 一般的なプロダクトでは上記のうち、XML や JSON が使用される事が多いと思います。 これらのフォーマットは普及率が高いため情報も多く、多くの処理系で枯れて安定した実装があるため

                                    XML より JSON より MessagePack が便利です
                                  • Javaのシリアライザーをいろいろ試してみる(Java標準、Kryo、MessagePack、Protocol Buffers、JBoss Marshalling) - CLOVER🍀

                                    少しシリアライズ関係のライブラリを目にする機会がありまして、そういえばこういうまとめ記事あったなぁということを思い出しました。 MessagePack、Kryo、Protocol Buffersなどのシリアライザーのパフォーマンス比較 http://blog.katty.in/4567 気にはなっていたものの、実際にこれらのライブラリを使ってコードを書いたことはなかったので(Protocol Buffersは除く)、いい機会だなと思い試してみました。 今回は、以下について書いていきます。 Java標準 Kryo MassagePack Protocol Buffers JBoss Marshalling 最後の方にかなり個人的な趣向が入っていますが、気にしない方向で…。Java標準が入っているのは、とりあえずといった感じで。 ここから、簡単にシリアライザーごとにシリアライズ対象のクラスと、

                                      Javaのシリアライザーをいろいろ試してみる(Java標準、Kryo、MessagePack、Protocol Buffers、JBoss Marshalling) - CLOVER🍀
                                    • RailsのログファイルをMessagePackで超高速解析!|TechRacho by BPS株式会社

                                      最近Railsがガンガン出力するproduction.logを解析してどのアクションがリクエスト多いのか、DBがボトルネックになってるアクションはないか、などを調べているんですが、production.logがどんどん肥大化して、解析ツールの開発イテレーションを回す際の効率が悪くなってきました。 また似たようなツールをやたらめったらコピペで作ってきたため、開発効率も悪くなってきたので、ここでAPIを整理しつつ、あわよくばログをなめる部分を高速化できないものかと考えました。 シンプルに正規表現をつかって変化する箇所を切り出していたのですが、これではかなり重いのは自明ですし、がんばって文字列をパースするパーサを作ってもrubyではあまりスピードは出なそう、でもrubyで書きたいし.... ということで、一度パースしたデータを読込みに効率よさそうな形式に変換することで、次以降の解析を高速化しよう

                                        RailsのログファイルをMessagePackで超高速解析!|TechRacho by BPS株式会社
                                      • Ruby で MessagePack-RPC - Blog by Sadayuki Furuhashi

                                        高速なオブジェクトシリアライズ形式 MessagePack をプロトコルに採用したRPCライブラリをリリースしました。 Ruby を使って簡単にRPCサーバーやクライアントを実装できます。 msgpack-rpc MessagePack-RPC プロトコルは既にkumofsやクラスタ管理ツール「clx」などで利用しており、高速なサーバーの実装にも便利ツールの実装にも、幅広く使えるシンプルなプロトコル仕様になっています。 clxを使うと複数のサーバーをグループに分けて、同じグループに属するサーバーに対して同じコマンドを実行できます。コマンドは並列して実行されるので、ファイル転送(rsync)のような時間のかかるコマンドでも快適に使えます。 clxのコアは汎用的なRPCサーバーで、RPC以外の機能はすべてモジュールとして実装されています。モジュールは起動時に登録できるほか、実行中でも追加でき、

                                          Ruby で MessagePack-RPC - Blog by Sadayuki Furuhashi
                                        • MessagePackがIETF標準化に巻き込まれてる件について:Geekなぺーじ

                                          ここ数日、MessagePackがIETFにおける標準化に巻き込まれてザワザワしています。 何が起きているかというと、MessagePackプロジェクトとは関係が無い第三者がIETFで派生物の標準化を進めようとしています(binarypack、Informational RFCとして)。 binarypackは、自らをMessagePackの派生であるとしながらも、MessagePackとの後方互換性が無いものです。 MessagePack is in danger! binarypackのInternet-Draftを提出しているのは、coreと6lowpanのchairです。 Chairであるかどうかが議論そのものに与える影響はそこまで大きくないとも言えますが、少なくともIETFでの話の進め方に精通した人物であることは確かです。 ただ、今回のInternet-Draftは、その人物がC

                                          • JavaScript で MessagePack を実装してみた - latest log

                                            140文字を超えちゃうので、こちらで。 id:viver さんの MessagePack を JavaScript で実装してみました。 HOT TO USE <script src="misc/msgpack.js"></script> <script src="misc/utf8.js"></script> <script> var pack = msgpack.pack("こんにちはこんにちは"); alert(msgpack.unpack(pack)); // こんにちはこんにちは </script> 現時点の仕様 / 制限事項 仕様 msgpack.pack(data:Mix):ByteArray で、data に指定されたオブジェクトをエンコードし、ByteArray( [数値, ...] ) を返します。 文字列は UTF8 な raw data として数値化します。 エンコ

                                              JavaScript で MessagePack を実装してみた - latest log
                                            • MessagePack-JS - プログラミングは素晴らしい

                                              cuzic です。 MessagePack の JavaScript 実装を作成しましたので、公開しました。 GitHub においております。 サーバ側で生成した MessagePack の文字列をクライアント側の JavaScript で、 var data = MessagePack.unpack(unescape("%a1%61")); alert(a); と書けば Ruby で 'a'.to_msgpack に相当する MessagePack のシリアリゼーション結果を変数 data に格納します。 現在は以下の状態です。 MessagePack 形式のデコードが可能。 整数、nil 、false 、true、浮動小数点、文字列、ハッシュ、配列 に対応 FireFox 3.6.3 と IE 8.0.6 で動作検証を実施。正常動作を確認。 作成した理由としては、以下の理由です。 最近

                                                MessagePack-JS - プログラミングは素晴らしい
                                              • msgpack-lite ピュアJavaScript実装の速いMessagePackライブラリ - Qiita

                                                MessagePack のエンコード・デコードを行う Node.js 用の JavaScript のライブラリを公開しました。 エンコード処理は、C++ で書かれた msgpack ライブラリよりも速いです。(Node.js v0.10.40) デコード処理も、他の Pure JavaScript のライブラリより速いです。 デモ → http://kawanet.github.io/msgpack-lite/ 使い方 エンコード処理:(JSオブジェクトをBufferに変換) var msgpack = require("msgpack-lite"); var buffer = msgpack.encode({"foo": "bar"}); // => 81 A3 66 6F 6F A3 62 61 72

                                                  msgpack-lite ピュアJavaScript実装の速いMessagePackライブラリ - Qiita
                                                • アシアルKLab合同勉強会で発表しました: MessagePackのPHP Extensionについて

                                                  こんにちは。takei-hです。 ちょっと時間が経ってしまったのですが、アシアル株式会社、KLab株式会社の合同勉強会でMessagePackとPHP Extensionについて発表しましたので、資料を公開します。 Php Meets Messagepack View more documents from Hideyuki Takei. また、PHP Extensionもだいたい形になったので、公開します。 MessagePack PHP Extensionのダウンロード ソースを解凍した後、インストールは以下のコマンドで。 $ ./configure $ make $ sudo make install そして、php.iniに以下の行を追加します。 extension=msgpack.so これで準備完了です。 主に、ruby版のライブラリを参考にしています。使い勝手はPHPのjso

                                                  • RubyKaigi2010でトークしてきました - The MessagePack Project - Blog by Sadayuki Furuhashi

                                                    つくばで開かれたRubyKaigi2010で、多言語間通信ライブラリ MessagePack についてLTしてきました。 音声付きの動画をニコニコ動画で見られます(スバラシイ!)。ぴったり5分に収まりました^^; 発表資料(PDF) 発表資料(クリックで進む動画) Twitterを見る限りでは評判も良かったようで、ひとまず安心しています。 説明が足りなかった部分もあるので、ここで補足しておきます。 JSONと比べてどれくらい小さくなるの? ある日のTwitterのpublic_timelineを使って比較してみたところ、JSONでは31KBだったものが、MessagePackでシリアライズし直すと25KBになり、約19%削減されました。 ただミニブログサービス「Amebaなう」に…等々の話にもあるように、「MessagePackを使えば必ず大幅にサイズ圧縮に成功する」という訳ではないです。

                                                      RubyKaigi2010でトークしてきました - The MessagePack Project - Blog by Sadayuki Furuhashi
                                                    • ウノウラボ by Zynga Japan: レディの嗜みについて ~ PHP と Membase と MessagePack と私

                                                      こんにちは mayutan です。 ラボブログを書かないとクビだと脅されたのでクリスマスに泣きながら書いておりますが 皆様いかがお過ごしでしょう。 今回のレディの嗜みですが、 レディたるもの、キーバリューストアくらい扱えないとなりません!!!!!!111 という事で membase についてご紹介しようと思います。 最近猫も杓子もソーシャルソーシャルわっしょいわっしょい!といった感じで、 これまでのシステムとはまた違った独特の工夫を皆様されていると思うのですが、 memcached を使っている方はかなり多いのではないでしょうか。 ここにプラットフォームから取得した情報や、あまり更新されない情報などを保存して、 DB やプラットフォームへのアクセスを極力減らす、という使い方がメジャーだと思います。 そして、同時に「これ永続化できたらもっと便利なんじゃないの?」って皆思ってるで

                                                      • MessagePack for Java ついに 0.6 リリース! - Blog by Sadayuki Furuhashi

                                                        先日の fluent に引き続き、新しいソフトウェアのリリースです。 満を持して、MessagePack for Java 0.6 をリリースしました! 9ヶ月ぶりのメジャーバージョンアップです。 以前のバージョン 0.5 の API をすべて見直し、互換性を維持しながらも、数多くの機能を新たに搭載しました。動的オブジェクトAPI や リフレクション機能の強化、JRubyとの連携、JSONサポート などなど。もちろん、性能も大きく向上しています。 このバージョン 0.6 のリリースによって、MessagePack の応用範囲は大きく広がります。MessagePackは、クラウドシステムからモバイルデバイスデバイスまで、多種多様なシステムの連携と統合をサポートする、新しいデータ表現形式です。 さて、新機能の詳細をご覧下さい: JSONシリアライザ・デシリアライザを統合 MessagePack

                                                          MessagePack for Java ついに 0.6 リリース! - Blog by Sadayuki Furuhashi
                                                        • MessagePack-RPC for C++ テクニカルプレビュー - Blog by Sadayuki Furuhashi

                                                          バイナリシリアライズ形式 MessagePack をプロトコルに利用したRPCライブラリ MessagePack-RPC の、C++版を開発しています。 以前に MessagePack-RPC for Ruby について 54行で実装する分散KVSや140行で作る分散リアルタイム検索エンジンを紹介しましたが、そのC++版です。 大まかな設計はRuby版と同じで、Ruby版と同じような使い勝手で利用できます。 しかしRuby版とは異なり、C++版では完全にマルチスレッドに対応しています。具体的には、マルチコア時代の高並列性IOアーキテクチャ Wavy を利用しています: 複数のスレッドでイベントループを共有しており、マルチスレッドでイベントハンドラを次々に処理していきます。 単純なイベント駆動I/Oと比べると、並列性が高いという利点があります。イベントハンドラの中で処理が多少ブロックしても、

                                                            MessagePack-RPC for C++ テクニカルプレビュー - Blog by Sadayuki Furuhashi
                                                          • MessagePackのPython Bindingをリリースしました : DSAS開発者の部屋

                                                            MessagePack とは、古橋(id:viver)さんが開発された高速・高効率なバイナリシリアライズフォーマットです。詳しくは 古橋さんの日記 やプロジェクトサイト を見てください。 PythonからMessagePackフォーマットでSerialize/DeserializeするためのPythonパッケージを作ったので、取得方法と使い方について簡単に紹介します。 1. インストール msgpackという名前でPython Package Index (PyPI)に登録してあります。 <http://pypi.python.org/pypi/msgpack/> setuptoolsをインストールしている環境では、 $ easy_install msgpack でインストールすることができます。 Windowsでインストールする場合は、PyPIのパッケージサイト からインストーラをダウン

                                                              MessagePackのPython Bindingをリリースしました : DSAS開発者の部屋
                                                            • mrubyでMessagePackを作った! - 涼風コンピュータblog

                                                              MessagePackって何? MessagePackとはなにかといいますと、JSON互換の異なる言語間でデータ交換するためのシリアライズフォーマットです。JSONのような型を扱え、 JSONよりコンパクトで、速いと言われています。(mrubyではまだ性能評価していないので、今後やってみたいと思います。) ログコレクターで有名なfluentdというミドルウェアで使用されています。 MessagePack for mruby 今回、MessagePack for ruby v 0.5.5からmrubyにGEMとして移植しました。すべて移植したわけではないので、α版というところでしょうか。 MessagePack#pack,MessagePack#unpackメソッドでだいたいの型を使用出来るようになっています。 次の例は配列をシリアライズして、MessagePack#unpackメソッドでデ

                                                                mrubyでMessagePackを作った! - 涼風コンピュータblog
                                                              • Ruby Rev + MessagePack による分散プログラム - Blog by Sadayuki Furuhashi

                                                                ネットワークプログラミングで面倒なのが、通信相手にバイト列しか送れないためプロトコルをシリアライズ方法から考えないといけないかったり、複数のクライアントに対応しようとするとスレッドやらイベント駆動やらを考えないといけないところで、なかなか本質的なロジックの実装に手を付けられずもどかしくなります。 そのあたりの面倒な部分をまとめて良きに計らってくれるRPCライブラリを作っておくと良さそうです。 とはいえ、RPCレイヤーはネットワークプログラミングの中でも速度と信頼性に大きく影響する部分でもあります。実装を丸々隠蔽されてしまうと、後になってカスタマイズできずに困ったことになるかもしれません。 最初のプロトタイピングとして簡単に使えるが、カスタマイズも効くような柔軟性が欲しいところです。 そこでRubyの高速なイベント駆動IOライブラリであるRevと、バイナリベースのシリアライズ形式であるMes

                                                                  Ruby Rev + MessagePack による分散プログラム - Blog by Sadayuki Furuhashi
                                                                • MessagePack for Ruby version 5

                                                                  MessagePack for Ruby version 5 MessagePack for Ruby の新版をリリースしました! さらなる高速化 APIの追加 新しいAPIリファレンス さらなる高速化 すべてのコードをゼロから再設計し、 シリアライズの大幅な高速化 を達成しました。 ruby-serializers を使って過去のバージョン(v4)と比較したところ、Twitter, 画像, 整数列, 地理データ, 3Dモデル のすべてのデータセットで高速化しました。 Twitter - 複雑なHash Twitter APIで返されるJSONを使ったベンチマークテストの結果です。 msgpack(old)(v4)と比べ、シリアライズが4倍以上高速化しました。 msgpack-ruby v5では、典型的な用途ではシリアライズ結果は数KB以下に収まる点に着目し、4KBの固定長メモリプールを導

                                                                    MessagePack for Ruby version 5
                                                                  • Kyoto Tycoon に MessagePack-RPC をプラグインして Java から使う - Blog by Sadayuki Furuhashi

                                                                    Tokyo Cabinet を始めとする Tokyo シリーズの作者として知られる平林幹雄さんですが、Tokyo シリーズに続く新製品として、Kyoto シリーズがリリースされています。 Kyoto Tycoon(以下KT)は、ネットワーク経由で使えるデータベースサーバで、Tokyo Tyrantの後継製品に当たります*1。 KT は HTTP ベースのプロトコルで操作することができますが、別のプロトコルを追加することもできます。 実際に memcached プロトコルのプラグインが標準でバンドルされています。(memcachedプロトコルをKTにプラグインする) と言うわけで、KT を MessagePack-RPC で使えるようにするプラグインを書いてみました。github からダウンロードできます。 kt-msgpack kt-msgpack downloads MessagePac

                                                                      Kyoto Tycoon に MessagePack-RPC をプラグインして Java から使う - Blog by Sadayuki Furuhashi
                                                                    • Confusion about IETF draft for a fork of MessagePack

                                                                      Confusion about IETF draft for a fork of MessagePack In this article, I’d like to discuss the current situation concerning the MessagePack open source project and potential standardization by the Internet Engineering Task Force (IETF). The appropriateness of the recent activity surrounding this OSS project and the standardization draft proposal is of perplexing nature, so I hope to shed some light

                                                                        Confusion about IETF draft for a fork of MessagePack
                                                                      • Rebuild: 3: MessagePack (frsyuki, kiyoto)

                                                                        古橋貞之さん、kiyotoさんをゲストに迎えて MessagePack について話しました。 Show Notes MessagePack KumoFS CodeRepos msgpack issue #121 Consensus decision-making msgpack issue #128 msgpack/binarypack

                                                                          Rebuild: 3: MessagePack (frsyuki, kiyoto)
                                                                        • Protocol Buffers, Avro, Thrift & MessagePack - igvita.com

                                                                          By Ilya Grigorik on August 01, 2011 Perhaps one of the first inescapable observations that a new Google developer (Noogler) makes once they dive into the code is that Protocol Buffers (PB) is the "language of data" at Google. Put simply, Protocol Buffers are used for serialization, RPC, and about everything in between. Initially developed in early 2000's as an optimized server request/response pro

                                                                          • JSONとMessagePack、シリアライズ性能比較 under the iOS - Qiita

                                                                            26日目、@adachi_c です。こんにちは〜。 今日は2台のiPhoneで通信して、JSONとMessagePackのシリアライズ、デシリアライズの速度を計る計測アプリ作ったんで、見てってください。 シリアライズとはなにか シリアライズというのは何かというと、他の環境で復元(デシリアライズ)できるように、環境依存なデータ構造を、システム間で相互理解できる形式に変換することです。 システムごとに、いろんなOS、言語、新旧の違いなどがあるかと思いますが、それぞれが相互運用性を維持するために、共通のメッセージ表現手法が必要です。それがJSONだとか、XMLのDOMやSAXに該当します。シリアライズ形式によっては、型情報を持っていることもあったりします。 OSや言語が異なるシステム間でAPIを設計するとき、このシリアライズを使うことが有効になるわけです。 どのシリアライズ方式をとるか では、様

                                                                              JSONとMessagePack、シリアライズ性能比較 under the iOS - Qiita
                                                                            • 進化するMessagePackプロジェクト - Webサイトリニューアル - Blog by Sadayuki Furuhashi

                                                                              MessagePack Project のWebサイトをリニューアルしました! 新しいURLは、http://msgpack.org/ です。 シンプルなイメージから若干趣を変え、完成度が高くてリッチな印象を重視しました ;-) 文章ではシリアライズの速度に加えて、RPCの意欲的な設計を強調しています。 なお、Twitterのハッシュタグは #msgpack です。ぜひツイートしてください^^; 実は先日、MessagePackプロジェクトについて StumbleUpon の研究開発チームの方々にプレゼンテーションしてきました。(参考:FacebookとStumbleUponの方がTwitterよりトラフィックを生んでいる) 写真を一枚^^; さらに、LuceneやHadoop開発者であり、Avroの開発者でもある Doug Cutting 氏(Wikipedia!)ともディスカッションす

                                                                                進化するMessagePackプロジェクト - Webサイトリニューアル - Blog by Sadayuki Furuhashi
                                                                              • MessagePack should be developed in an open process · Issue #129 · msgpack/msgpack

                                                                                MessagePack has become highly visible on the Internet approximately three years ago. These three years were exciting, with many new implementations coming up. In these three years, there never was any serious attempt to evolve the specification. When I made my original BinaryPack specification proposal ("-00") in October 2012, I tried to engage @frsyuki. After a little interaction it seemed to me

                                                                                  MessagePack should be developed in an open process · Issue #129 · msgpack/msgpack
                                                                                • MessagePack for PHP@Webホスティング - Blog by Sadayuki Furuhashi

                                                                                  先日 phpのserializeを使うより高速でサイズもコンパクトに仕上げる「MessagePack」とPHP拡張 でも紹介されている MessagePack for PHP ですが、Webホスティングサービスにも標準で組み込まれ始めているようです: Joe’sウェブホスティング、高速シリアライズライブラリ「MessagePack」のPHP拡張モジュールを全共用サーバーに提供開始 MessagePackはオープンソースで開発が進んでいるプロジェクトです。そして各言語版はそれぞれの言語のエキスパートによって実装されるという形態になっています(自然にそうなったのですが^^;)。 PHP版はadvectさんによる実装です。 実はPHP版には以前に別の実装があり、advectさんから新しい実装が送られてきたときは 2,3回くらい提案された実装を全部リジェクトした という経緯があるのですが(笑)、最

                                                                                    MessagePack for PHP@Webホスティング - Blog by Sadayuki Furuhashi