SBE ist eine OSI-Layer-6-Präsentation zum Kodieren und Dekodieren binärer Anwendungsnachrichten für Finanzanwendungen mit geringer Latenz. Dieses Repository enthält die Referenzimplementierungen in Java, C++, Golang, C# und Rust.
Weitere Details zum Design und zur Verwendung von SBE finden Sie im Wiki.
Eine XSD für SBE-Spezifikationen finden Sie hier. Bitte richten Sie Fragen zur Spezifikation an die SBE FIX-Community.
Aktuelle Versionsinformationen und Änderungen finden Sie im Änderungsprotokoll mit Downloads bei Maven Central.
Die Java- und C++-SBE-Implementierungen arbeiten sehr effizient mit dem Aeron-Messaging-System für Kommunikation mit geringer Latenz und hohem Durchsatz. Die Java SBE-Implementierung ist hinsichtlich ihrer Pufferimplementierungen von Agrona abhängig. Kommerziellen Support erhalten Sie unter [email protected].
Informationen zu Binärdateien und Abhängigkeiten für Maven, Ivy, Gradle und andere finden Sie unter http://search.maven.org.
Beispiel für Maven:
< dependency >
< groupId >uk.co.real-logic</ groupId >
< artifactId >sbe-all</ artifactId >
< version >${sbe.tool.version}</ version >
</ dependency >
Erstellen Sie das Projekt mit Gradle mithilfe dieser build.gradle-Datei.
Komplett sauberer Build:
$ ./gradlew
Führen Sie die Java-Beispiele aus
$ ./gradlew runJavaExamples
Jars für die ausführbare Datei, den Quellcode und Javadoc für die verschiedenen Module finden Sie in den folgenden Verzeichnissen:
sbe-benchmarks/build/libs
sbe-samples/build/libs
sbe-tool/build/libs
sbe-all/build/libs
Ein Beispiel für die Ausführung eines Jars über die Befehlszeile mit dem „all“-Jar, das die Agrona-Abhängigkeit enthält:
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
HINWEIS: Derzeit nur Linux, Mac OS und Windows. Siehe FAQ. Windows-Builds wurden mit Visual Studio Express 12 getestet.
Der Einfachheit halber führt das cppbuild
-Skript eine vollständige Bereinigung, Erstellung und einen Test aller Ziele als Release-Build durch.
$ ./cppbuild/cppbuild
Wenn Sie mit CMake vertraut sind, sieht eine vollständige Bereinigung, Erstellung und Prüfung wie folgt aus:
$ mkdir -p cppbuild/Debug
$ cd cppbuild/Debug
$ cmake ../..
$ cmake --build . --clean-first
$ ctest
Hinweis : Der C++-Build enthält den C-Generator. Derzeit ist der C-Generator in Arbeit.
Erstellen Sie zunächst mit Gradle, um das SBE-JAR zu generieren, und generieren Sie dann damit den Golang-Code zum Testen.
$ ./gradlew
$ ./gradlew generateGolangCodecs
Zur Vereinfachung unter Linux wird ein GNU-Makefile bereitgestellt, das einige Tests ausführt und einige Beispiele enthält.
$ cd gocode
# make # test, examples, bench
Go unterstützt sowohl die Generierung von Go-Strukturen mit Kodierungs-/Dekodierungsmethoden als auch Fliegengewichte wie die anderen Sprachen. Aus Kompatibilitätsgründen werden Strukturen standardmäßig generiert. Setzen Sie sbe.go.generate.generate.flyweights=true
um Fliegengewichte zu generieren.
Benutzer von Golang-generiertem Code sollten die Benutzerdokumentation lesen.
Entwickler, die den Golang-Generator verbessern möchten, sollten sich die Entwicklerdokumentation ansehen
Benutzer von CSharp-generiertem Code sollten die Benutzerdokumentation lesen.
Entwickler, die den CSharp-Generator verbessern möchten, sollten sich die Entwicklerdokumentation ansehen
Der SBE Rust Generator erzeugt 100 % sichere Rostkisten (es wird kein unsafe
Code generiert). Generierte Crates weisen keine Abhängigkeiten von Bibliotheken auf (einschließlich SBE-Bibliotheken). Wenn Sie Rust noch nicht installiert haben, lesen Sie Rust: Erste Schritte
Generieren Sie die Rust-Codecs
$ ./gradlew generateRustCodecs
Führen Sie den Rust-Test von Gradle aus
$ ./gradlew runRustTests
Oder führen Sie den Test direkt mit Cargo
durch
$ cd rust
$ cargo test
Copyright 2013-2024 Real Logic Limited.
Copyright 2017 MarketFactory Inc.
Lizenziert unter der Apache-Lizenz, Version 2.0 (die „Lizenz“); Sie dürfen diese Datei nur in Übereinstimmung mit der Lizenz verwenden. Eine Kopie der Lizenz erhalten Sie unter
https://www.apache.org/licenses/LICENSE-2.0
Sofern nicht durch geltendes Recht vorgeschrieben oder schriftlich vereinbart, wird die im Rahmen der Lizenz vertriebene Software „WIE BESEHEN“ und OHNE GEWÄHRLEISTUNGEN ODER BEDINGUNGEN JEGLICHER ART, weder ausdrücklich noch stillschweigend, vertrieben. Die spezifische Sprache, die die Berechtigungen und Einschränkungen im Rahmen der Lizenz regelt, finden Sie in der Lizenz.