SBE هو عرض تقديمي من طبقة OSI 6 لتشفير وفك تشفير رسائل التطبيقات الثنائية للتطبيقات المالية ذات زمن الوصول المنخفض. يحتوي هذا المستودع على التطبيقات المرجعية في Java وC++ وGolang وC# وRust.
يمكن العثور على مزيد من التفاصيل حول تصميم واستخدام SBE على Wiki.
يمكن العثور على XSD لمواصفات SBE هنا. يرجى توجيه الأسئلة المتعلقة بالمواصفات إلى مجتمع SBE FIX.
للحصول على أحدث معلومات الإصدار والتغييرات، راجع سجل التغيير مع التنزيلات في Maven Central.
تعمل تطبيقات Java وC++ SBE بكفاءة عالية مع نظام المراسلة Aeron للاتصالات ذات زمن الوصول المنخفض وعالية الإنتاجية. يعتمد تطبيق Java SBE على Agrona في تطبيقات المخزن المؤقت الخاصة به. يتوفر الدعم التجاري من [email protected].
يمكن العثور على الثنائيات ومعلومات التبعية لـ Maven وIvy وGradle وغيرها على http://search.maven.org.
مثال لمافن:
< dependency >
< groupId >uk.co.real-logic</ groupId >
< artifactId >sbe-all</ artifactId >
< version >${sbe.tool.version}</ version >
</ dependency >
أنشئ المشروع باستخدام Gradle باستخدام ملف build.gradle هذا.
البناء النظيف الكامل:
$ ./gradlew
قم بتشغيل أمثلة جافا
$ ./gradlew runJavaExamples
يمكن العثور على الجرار الخاصة بالملف القابل للتنفيذ والمصدر وjavadoc للوحدات النمطية المختلفة في الدلائل التالية:
sbe-benchmarks/build/libs
sbe-samples/build/libs
sbe-tool/build/libs
sbe-all/build/libs
مثال لتنفيذ Jar من سطر الأوامر باستخدام الجرة 'all' التي تتضمن تبعية 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
ملحوظة: 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 ثم استخدمها لإنشاء كود golang للاختبار.
$ ./gradlew
$ ./gradlew generateGolangCodecs
من أجل الراحة على Linux، تم توفير ملف gnu Makefile الذي يجري بعض الاختبارات ويحتوي على بعض الأمثلة.
$ cd gocode
# make # test, examples, bench
يدعم Go إنشاء بنيات Go باستخدام طرق التشفير/فك التشفير وأوزان الذبابة مثل اللغات الأخرى. يتم إنشاء الهياكل بشكل افتراضي من أجل التوافق. قم بتعيين sbe.go.generate.generate.flyweights=true
لإنشاء أوزان الذبابة.
يجب على مستخدمي كود جولانج الذي تم إنشاؤه الاطلاع على وثائق المستخدم.
يجب على المطورين الراغبين في تحسين مولد golang الاطلاع على وثائق المطور
يجب على مستخدمي التعليمات البرمجية التي تم إنشاؤها بواسطة CSharp الاطلاع على وثائق المستخدم.
يجب على المطورين الراغبين في تحسين مولد CSharp الاطلاع على وثائق المطور
سوف يقوم مولد SBE Rust بإنتاج صناديق صدأ آمنة بنسبة 100% (لن يتم إنشاء أي تعليمات برمجية unsafe
). لا تحتوي الصناديق المُنشأة على أي تبعيات على أي مكتبات (بما في ذلك عدم وجود مكتبات SBE). إذا لم تكن قد قمت بتثبيت Rust بعد، فراجع Rust: الشروع في العمل
قم بإنشاء برامج الترميز Rust
$ ./gradlew generateRustCodecs
قم بإجراء اختبار الصدأ من Gradle
$ ./gradlew runRustTests
أو قم بإجراء الاختبار مباشرة مع Cargo
$ cd rust
$ cargo test
حقوق الطبع والنشر 2013-2024 شركة Real Logic Limited.
حقوق الطبع والنشر 2017 شركة ماركت فاكتوري.
مرخص بموجب ترخيص Apache، الإصدار 2.0 ("الترخيص")؛ لا يجوز لك استخدام هذا الملف إلا وفقًا للترخيص. يمكنك الحصول على نسخة من الترخيص على
https://www.apache.org/licenses/LICENSE-2.0
ما لم يكن ذلك مطلوبًا بموجب القانون المعمول به أو تم الاتفاق عليه كتابيًا، يتم توزيع البرامج الموزعة بموجب الترخيص على أساس "كما هي"، دون ضمانات أو شروط من أي نوع، سواء كانت صريحة أو ضمنية. راجع الترخيص لمعرفة الأذونات والقيود التي تحكم اللغة المحددة بموجب الترخيص.