問題タブ [protocol-buffers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - プロトコル バッファ Java RPC スタック
このウィキペディアのエントリによると:
「Protocol Buffers は Facebook の Thrift プロトコルと非常によく似ていますが、定義されたサービスに使用する具体的な RPC スタックが含まれていません。Protocol Buffers がオープン ソース化されたため、このギャップを埋めるために多くの RPC スタックが登場しました。」
ただし、引用されている RPC スタックの例はありません。RPC スタックの Java ベースの実装を提案できる人はいますか?
protocol-buffers - SerializeWithLengthPrefixと同等のC++
ソケット(TcpListenerおよびTcpClient)を使用してProtocol Buffers(protobuf-net)を使用して通信ライブラリを構築しましたが、正常に動作していますが、同僚はC++を使用してソフトウェアと通信するためのライブラリを作成する必要があります。
Serializer.NonGeneric.SerializeWithLengthPrefix
とを使用していることがわかりましたSerializer.NonGeneric.TryDeserializeWithLengthPrefix
。
protobuf C ++ライブラリに同等の関数はありますか?そうでない場合、誰かがそれを実装する方法を知っていますか、それとも共有するために実装しましたか?
c# - フィールドのProtoInclude?
私は単純なオブジェクトを持っています
そしてキーに問題があります。その型は object ですが、int、long、または string のいずれかです。私は直感的に ProtoInclude 属性を使用して「これらの型を期待する」と言いますが、残念ながらそれらはクラスのみの属性です。これを回避する方法を知っている人はいますか? 背景として、公開オブジェクト Key は歴史的な理由から (そしてあちこちに) ここにあるので、すべてのリファクタリングの母を避けたいと思います ;-) これをシリアル化する可能性があれば、強制的にシリアル化することさえできます。文字列 ?
protocol-buffers - PrefixStyleをFixed32に切り替えた後、逆シリアル化が失敗する
使用して開発している通信ライブラリのテストスイートがあり、正常にprotobuf-net
実行されています。すべてのテストに合格します。しかし、PrefixStyleをBase128からFixed32に変更すると、逆シリアル化は失敗します。
TryDeserializeWithLengthPrefix
関数から受け取る例外は次のとおりです。
メッセージをシリアル化および逆シリアル化するときにPrefixStyle.Base128を単純に保持すれば、すべてが機能します。
誰かが何が起こっているのか知っていますか?
datetime - プロトコルバッファで小数と日時を使用する最良の方法は何ですか?
プロトコル バッファでサポートされているリストに含まれていない一般的なデータ型を保存する最適な方法を知りたいです。
- 日時 (秒精度)
- datetime (ミリ秒の精度)
- 固定精度の小数
- 可変精度の小数
- 多数の bool 値 (それらが多数ある場合、それらのタグのために、それぞれに 1 ~ 2 バイトのオーバーヘッドがあるように見えます。
また、対応する C++/Python/Java データ型に非常に簡単にマップするという考え方もあります。
blob - mysqlpp::sql_blob を std::string に変換しても安全ですか?
MySQL データベースからバイナリ データを取得しています。mysqlpp::sql_blob タイプとして出てきます。
この BLOB がシリアル化された Google Protobuf であることはたまたまです。正常にアクセスできるように、シリアル化を解除する必要があります。
ParseFromString() は mysqlpp:sql_blob 型を対象としていないため、これはコンパイル エラーになります。
ただし、キャストを強制すると、正常にコンパイルされます。
これは安全ですか?mysqlpp ドキュメントからのこのスニペットのために、私は特に心配しています:
ご協力ありがとうございます。
maven-2 - Protocol Buffers を Maven2 ビルドに統合する
私は、既存のかなりバニラな Maven 2 プロジェクトで Protocol Buffers を試しています。現在、生成されたソースを更新する必要があるたびに、シェル スクリプトを呼び出しています。各ビルドの前にソースを自動的に生成したいので、これは明らかに面倒です。恥ずべきハッカーに頼らないことを願っています。
だから、私の質問は2つあります:
ロングショット:上記を自動で達成できるMaven 2用の「プロトコルバッファプラグイン」はありますか?そのようなプラグインの実装に挑戦したと思われるGoogle Codeのブランチがあります。残念ながら、コード レビューに合格していないか、protobuf トランクにマージされていません。したがって、そのプラグインのステータスは不明です。
おそらくもっと現実的です: 実際のプラグインが不足している場合
protoc
、Maven 2 ビルドから他にどのように呼び出すことができますか?antrun
既存のシェルスクリプトを呼び出しなどに結び付けることができると思います。
個人的な経験が最も高く評価されます。
objective-c - Objective-C でのプロトコル バッファの使用
Objective-C でアプリケーションを開発するときに、Google のプロトコル バッファを使用した人はいますか?
ファイルを Objective-C にコンパイルするための現在のプロジェクトはありますか.proto
。すべての Google ドキュメントは単に Java、C++、または Python を参照しています。
c# - .NET でシリアル化された型の変更に対して最も寛容なシリアライザーはどれですか?
XmlSerializer は、シリアル化された型への新しいメンバーの追加、既存のメンバーの削除などに対してより寛容であることに気付きました。
これを BinaryFormatter で実行し、古いデータを逆シリアル化しようとすると、例外がスローされました。
オプションを寛容にするために、他にどのような代替手段がありますか?つまり、例外をスローせずにデフォルト値を使用したり、それらをスキップしたりするものはありますか?
プロトコル バッファはこの点で寛容ですか?
java-me - Java meでGoogleプロトコルバッファを使用するには?
Google プロトコル バッファを使用してプロトコルを設計しましたが、Java me クライアントを作成したいと考えています。しかし、私が見つけたこの実装は厳しく制限されています。列挙型、ネストされたメッセージは許可されず、非常に基本的であり、使用目的が無効になります。
java-me 用のプロトコル バッファの代替実装はありますか。