SBE est une présentation OSI de couche 6 pour le codage et le décodage des messages d'application binaires pour les applications financières à faible latence. Ce référentiel contient les implémentations de référence en Java, C++, Golang, C# et Rust.
Plus de détails sur la conception et l'utilisation de SBE peuvent être trouvés sur le Wiki.
Une spécification XSD pour SBE peut être trouvée ici. Veuillez adresser vos questions sur la spécification à la communauté SBE FIX.
Pour obtenir les dernières informations sur la version et les modifications, consultez le journal des modifications avec téléchargements sur Maven Central.
Les implémentations Java et C++ SBE fonctionnent très efficacement avec le système de messagerie Aeron pour des communications à faible latence et à haut débit. L'implémentation Java SBE dépend d'Agrona pour ses implémentations de tampon. Une assistance commerciale est disponible à [email protected].
Les informations sur les binaires et les dépendances pour Maven, Ivy, Gradle et autres sont disponibles sur http://search.maven.org.
Exemple pour Maven :
< dependency >
< groupId >uk.co.real-logic</ groupId >
< artifactId >sbe-all</ artifactId >
< version >${sbe.tool.version}</ version >
</ dependency >
Construisez le projet avec Gradle en utilisant ce fichier build.gradle.
Construction entièrement propre :
$ ./gradlew
Exécutez les exemples Java
$ ./gradlew runJavaExamples
Les fichiers jar pour l'exécutable, les sources et le javadoc des différents modules se trouvent dans les répertoires suivants :
sbe-benchmarks/build/libs
sbe-samples/build/libs
sbe-tool/build/libs
sbe-all/build/libs
Un exemple pour exécuter un Jar à partir de la ligne de commande en utilisant le jar 'all' qui inclut la dépendance Agrona :
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
REMARQUE : Linux, Mac OS et Windows uniquement pour le moment. Voir FAQ. Les versions Windows ont été testées avec Visual Studio Express 12.
Pour plus de commodité, le script cppbuild
effectue un nettoyage, une génération et un test complets de toutes les cibles en tant que version Release.
$ ./cppbuild/cppbuild
Si vous êtes à l'aise avec CMake, un nettoyage, une construction et un test complets ressemblent à :
$ mkdir -p cppbuild/Debug
$ cd cppbuild/Debug
$ cmake ../..
$ cmake --build . --clean-first
$ ctest
Remarque : La version C++ inclut le générateur C. Actuellement, le générateur C est un travail en cours.
Construisez d'abord à l'aide de Gradle pour générer le pot SBE, puis utilisez-le pour générer le code Golang à des fins de test.
$ ./gradlew
$ ./gradlew generateGolangCodecs
Pour plus de commodité sous Linux, un Makefile gnu est fourni qui exécute certains tests et contient quelques exemples.
$ cd gocode
# make # test, examples, bench
Go prend en charge à la fois la génération de structures Go avec des méthodes d'encodage/décodage et des poids mouches comme les autres langages. Les structures sont générées par défaut pour des raisons de compatibilité. Définissez sbe.go.generate.generate.flyweights=true
pour générer des poids mouches.
Les utilisateurs de code généré par Golang doivent consulter la documentation utilisateur.
Les développeurs souhaitant améliorer le générateur Golang doivent consulter la documentation du développeur.
Les utilisateurs du code généré par CSharp doivent consulter la documentation utilisateur.
Les développeurs souhaitant améliorer le générateur CSharp doivent consulter la documentation du développeur.
Le générateur SBE Rust produira des caisses de rouille 100 % sûres (aucun code unsafe
ne sera généré). Les caisses générées n'ont aucune dépendance sur aucune bibliothèque (y compris aucune bibliothèque SBE). Si Rust n'est pas encore installé, consultez Rust : Démarrer.
Générer les codecs Rust
$ ./gradlew generateRustCodecs
Exécutez le test Rust depuis Gradle
$ ./gradlew runRustTests
Ou effectuez le test directement avec Cargo
$ cd rust
$ cargo test
Copyright 2013-2024 Real Logic Limitée.
Copyright 2017 MarketFactory Inc.
Sous licence Apache, version 2.0 (la « Licence » ); vous ne pouvez pas utiliser ce fichier sauf en conformité avec la licence. Vous pouvez obtenir une copie de la licence à
https://www.apache.org/licenses/LICENSE-2.0
Sauf disposition contraire de la loi applicable ou accord écrit, le logiciel distribué sous la licence est distribué « TEL QUEL », SANS GARANTIE OU CONDITION D'AUCUNE SORTE, expresse ou implicite. Consultez la licence pour connaître la langue spécifique régissant les autorisations et les limitations en vertu de la licence.