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
除非适用法律要求或书面同意,否则根据许可证分发的软件均按“原样”分发,不带任何明示或暗示的保证或条件。请参阅许可证,了解许可证下管理权限和限制的特定语言。