SBE は、低遅延金融アプリケーション向けのバイナリ アプリケーション メッセージをエンコードおよびデコードするための OSI レイヤ 6 プレゼンテーションです。このリポジトリには、Java、C++、Golang、C#、および Rust のリファレンス実装が含まれています。
SBE の設計と使用法の詳細については、Wiki を参照してください。
SBE 仕様の XSD はここにあります。仕様に関する質問は SBE FIX コミュニティに送信してください。
最新バージョンの情報と変更点については、Maven Central にあるダウンロード付きの変更ログを参照してください。
Java および C++ SBE 実装は、Aeron メッセージング システムと非常に効率的に連携して、低遅延かつ高スループットの通信を実現します。 Java SBE 実装は、バッファ実装に関して Agrona に依存しています。商用サポートは [email protected] からご利用いただけます。
Maven、Ivy、Gradle などのバイナリと依存関係の情報は、http://search.maven.org で見つけることができます。
Maven の例:
< dependency >
< groupId >uk.co.real-logic</ groupId >
< artifactId >sbe-all</ artifactId >
< version >${sbe.tool.version}</ version >
</ dependency >
この build.gradle ファイルを使用して、Gradle でプロジェクトをビルドします。
完全にクリーンなビルド:
$ ./gradlew
Java サンプルを実行する
$ ./gradlew runJavaExamples
さまざまなモジュールの実行可能ファイル、ソース、および javadoc の JAR は、次のディレクトリにあります。
sbe-benchmarks/build/libs
sbe-samples/build/libs
sbe-tool/build/libs
sbe-all/build/libs
Agrona 依存関係を含む「all」jar を使用してコマンドラインから Jar を実行する例:
java -Dsbe.generate.ir=true -Dsbe.target.language=Cpp -Dsbe.target.namespace=sbe -Dsbe.output.dir=include/gen -Dsbe.errorLog=yes -jar sbe-all/build/libs/sbe-all-${SBE_TOOL_VERSION}.jar my-sbe-messages.xml
注: 現時点では、Linux、Mac OS、および Windows のみ。 FAQを参照してください。 Windows ビルドは Visual Studio Express 12 でテストされています。
便宜上、 cppbuild
スクリプトはリリース ビルドとしてすべてのターゲットの完全なクリーン、ビルド、テストを実行します。
$ ./cppbuild/cppbuild
CMake の使用に慣れている場合は、完全なクリーン、ビルド、テストは次のようになります。
$ mkdir -p cppbuild/Debug
$ cd cppbuild/Debug
$ cmake ../..
$ cmake --build . --clean-first
$ ctest
注: C++ ビルドには C ジェネレーターが含まれています。現在、C ジェネレーターは開発中です。
まず Gradle を使用してビルドして SBE jar を生成し、次にそれを使用してテスト用の golang コードを生成します。
$ ./gradlew
$ ./gradlew generateGolangCodecs
Linux での便宜のために、いくつかのテストを実行し、いくつかの例を含む gnu Makefile が提供されています。
$ cd gocode
# make # test, examples, bench
Go は、エンコード/デコード メソッドを使用した Go 構造体の生成と、他の言語と同様のフライウェイトの両方をサポートします。構造体は互換性のためにデフォルトで生成されます。フライウェイトを生成するには、 sbe.go.generate.generate.flyweights=true
を設定します。
golang で生成されたコードのユーザーは、ユーザー ドキュメントを参照してください。
golang ジェネレーターを強化したい開発者は、開発者ドキュメントを参照してください。
CSharp で生成されたコードのユーザーは、ユーザー ドキュメントを参照してください。
CSharp ジェネレーターを強化したい開発者は、開発者向けドキュメントを参照してください。
SBE Rust ジェネレーターは、100% 安全な Rust クレートを生成します ( unsafe
コードは生成されません)。生成されたクレートは、どのライブラリにも依存しません (SBE ライブラリを含まない)。 Rust をまだインストールしていない場合は、「Rust: はじめに」を参照してください。
Rust コーデックを生成する
$ ./gradlew generateRustCodecs
Gradle から Rust テストを実行する
$ ./gradlew runRustTests
または、 Cargo
で直接テストを実行します
$ cd rust
$ cargo test
著作権は 2013-2024 Real Logic Limited にあります。
Copyright 2017 マーケットファクトリー株式会社
Apache License バージョン 2.0 (「ライセンス」) に基づいてライセンスされています。ライセンスに準拠する場合を除き、このファイルを使用することはできません。ライセンスのコピーは次の場所で入手できます。
https://www.apache.org/licenses/LICENSE-2.0
適用される法律で義務付けられている場合または書面による同意がない限り、ライセンスに基づいて配布されるソフトウェアは、明示または黙示を問わず、いかなる種類の保証や条件もなく、「現状のまま」で配布されます。ライセンスに基づく許可と制限を規定する特定の言語については、ライセンスを参照してください。