SBE adalah presentasi OSI lapisan 6 untuk menyandikan dan mendekode pesan aplikasi biner untuk aplikasi keuangan latensi rendah. Repositori ini berisi implementasi referensi di Java, C++, Golang, C#, dan Rust.
Detail lebih lanjut tentang desain dan penggunaan SBE dapat ditemukan di Wiki.
Spesifikasi XSD untuk SBE dapat ditemukan di sini. Silakan ajukan pertanyaan tentang spesifikasi kepada komunitas SBE FIX.
Untuk informasi dan perubahan versi terbaru, lihat Log Perubahan dengan unduhan di Maven Central.
Implementasi Java dan C++ SBE bekerja sangat efisien dengan sistem pesan Aeron untuk komunikasi latensi rendah dan throughput tinggi. Implementasi Java SBE memiliki ketergantungan pada Agrona untuk implementasi buffernya. Dukungan komersial tersedia dari [email protected].
Informasi biner dan ketergantungan untuk Maven, Ivy, Gradle, dan lainnya dapat ditemukan di http://search.maven.org.
Contoh untuk Maven:
< dependency >
< groupId >uk.co.real-logic</ groupId >
< artifactId >sbe-all</ artifactId >
< version >${sbe.tool.version}</ version >
</ dependency >
Bangun proyek dengan Gradle menggunakan file build.gradle ini.
Bangunan bersih penuh:
$ ./gradlew
Jalankan contoh Java
$ ./gradlew runJavaExamples
Jar untuk executable, source, dan javadoc untuk berbagai modul dapat ditemukan di direktori berikut:
sbe-benchmarks/build/libs
sbe-samples/build/libs
sbe-tool/build/libs
sbe-all/build/libs
Contoh untuk mengeksekusi Jar dari baris perintah menggunakan jar 'semua' yang mencakup ketergantungan 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
CATATAN: Linux, Mac OS, dan Windows hanya untuk saat ini. Lihat FAQ. Versi Windows telah diuji dengan Visual Studio Express 12.
Demi kenyamanan, skrip cppbuild
melakukan pembersihan penuh, pembuatan, dan pengujian semua target sebagai versi Rilis.
$ ./cppbuild/cppbuild
Jika Anda merasa nyaman menggunakan CMake, maka pembersihan penuh, pembuatan, dan pengujian akan terlihat seperti:
$ mkdir -p cppbuild/Debug
$ cd cppbuild/Debug
$ cmake ../..
$ cmake --build . --clean-first
$ ctest
Catatan : Versi C++ menyertakan generator C. Saat ini, generator C sedang dalam proses.
Pertama, buat menggunakan Gradle untuk membuat toples SBE, lalu gunakan untuk membuat kode golang untuk pengujian.
$ ./gradlew
$ ./gradlew generateGolangCodecs
Untuk kenyamanan di Linux, disediakan gnu Makefile yang menjalankan beberapa pengujian dan berisi beberapa contoh.
$ cd gocode
# make # test, examples, bench
Go mendukung pembuatan struct Go dengan metode encode/decode, dan flyweight seperti bahasa lainnya. Struct dibuat secara default untuk kompatibilitas. Setel sbe.go.generate.generate.flyweights=true
untuk menghasilkan kelas terbang.
Pengguna kode yang dihasilkan golang harus melihat dokumentasi pengguna.
Pengembang yang ingin meningkatkan generator golang harus melihat dokumentasi pengembang
Pengguna kode yang dihasilkan CSharp harus melihat dokumentasi pengguna.
Pengembang yang ingin meningkatkan generator CSharp harus melihat dokumentasi pengembang
Generator SBE Rust akan menghasilkan 100% peti karat yang aman (tidak ada kode unsafe
yang akan dihasilkan). Peti yang dihasilkan tidak memiliki ketergantungan apa pun pada perpustakaan mana pun (termasuk tidak ada perpustakaan SBE). Jika Anda belum menginstal Rust, lihat Rust: Memulai
Hasilkan codec Rust
$ ./gradlew generateRustCodecs
Jalankan tes Rust dari Gradle
$ ./gradlew runRustTests
Atau jalankan tes langsung dengan Cargo
$ cd rust
$ cargo test
Hak Cipta 2013-2024 Real Logic Limited.
Hak Cipta 2017 MarketFactory Inc.
Berlisensi di bawah Lisensi Apache, Versi 2.0 ("Lisensi"); Anda tidak boleh menggunakan file ini kecuali sesuai dengan Lisensi. Anda dapat memperoleh salinan Lisensi di
https://www.apache.org/licenses/LICENSE-2.0
Kecuali diwajibkan oleh undang-undang yang berlaku atau disetujui secara tertulis, perangkat lunak yang didistribusikan berdasarkan Lisensi didistribusikan berdasarkan DASAR "APA ADANYA", TANPA JAMINAN ATAU KETENTUAN DALAM BENTUK APAPUN, baik tersurat maupun tersirat. Lihat Lisensi untuk bahasa tertentu yang mengatur izin dan batasan berdasarkan Lisensi.