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。請參閱常見問題。 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
程式碼)。產生的 crate 不依賴任何函式庫(包括無 SBE 函式庫)。如果您尚未安裝 Rust,請參閱 Rust:入門
產生 Rust 編解碼器
$ ./gradlew generateRustCodecs
從 Gradle 執行 Rust 測試
$ ./gradlew runRustTests
或直接使用Cargo
運行測試
$ cd rust
$ cargo test
版權所有 2013-2024 Real Logic 有限公司。
版權所有 2017 MarketFactory Inc.
根據 Apache 許可證 2.0 版(“許可證”)獲得許可;除非遵守許可證,否則您不得使用此文件。您可以在以下位置取得許可證副本:
https://www.apache.org/licenses/LICENSE-2.0
除非適用法律要求或書面同意,否則根據許可證分發的軟體均以「原樣」分發,不帶任何明示或暗示的保證或條件。請參閱許可證,了解許可證下管理權限和限制的特定語言。