# Proposals from the High Performance Working Group (SBE, GPB, ASN.1)

**URL:** <https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738>\
**Category:** General Q&A\
**Tags:** imported, fix-for-high-perform, xid\_165290, simple-binary\
**Created:** [August 7, 2013, 5:20am UTC](https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738 "2013-08-07T05:20:20Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![kaymahes\_x](https://avatars.discourse-cdn.com/v4/letter/k/c2a13f/32.png) [@kaymahes\_x](https://forum.fixtrading.org/u/kaymahes_x)\
**Post date:** [August 7, 2013, 5:20am UTC](https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738/1 "2013-08-07T05:20:20Z")

</div>

Imported from previous forum

---

<div class="post-metadata">

**Author:** ![kaymahes\_x](https://avatars.discourse-cdn.com/v4/letter/k/c2a13f/32.png) [@kaymahes\_x](https://forum.fixtrading.org/u/kaymahes_x)\
**Post date:** [August 7, 2013, 5:20am UTC](https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738/2 "2013-08-07T05:20:20Z")

</div>

Three major approaches to the efficient encoding of FIX that have been developed and are being proposed by the High Performance Working Group:-

[http://www.fixprotocol.org/encodings](http://www.fixprotocol.org/encodings)

1. Simple Binary Encoding (SBE) -

Simple Binary Encoding produces fast and compact encodings of FIX messages. SBE provides different characteristics than other binary encodings. It is optimized for low latency. This encoding complements the existing only binary FAST (FIX Adapted for STreaming market data) encoding with a focus on reducing bandwidth utilization for market data. In addition, the encoding is also defined and controlled within FPL only in contrast to the other binary encodings proposals to encode FIX with Google Protocol Buffers and ASN.1.

[http://www.fixprotocol.org/encodings#Simple\_Binary\_Encoding](http://www.fixprotocol.org/encodings#Simple_Binary_Encoding)

1. Google Protocol Buffers (GPB) -

Protocol buffers are Google’s language neutral, platform neutral, extensible mechanism for serializing structured data.

[http://www.fixprotocol.org/encodings#Google\_Protocol\_Buffers\_Mapping](http://www.fixprotocol.org/encodings#Google_Protocol_Buffers_Mapping)

1. Abstract Syntax Notation 1 (ASN.1) -

ASN.1 is a family of International Standards for the definition and encoding of messages, jointly developed and published by the International Organization for Standardization and the International Telecommunication Union. ASN is a standard and notation that describes rules and structures for representing, encoding, transmitting, and decoding data in telecommunications and computer networking.

[http://www.fixprotocol.org/encodings#ASN.1\_Mapping](http://www.fixprotocol.org/encodings#ASN.1_Mapping)

I am surprised that FPL Program Office / FIX Protocol Ltd. [fpl@fixprotocol.org](mailto:fpl@fixprotocol.org) has NOT announced these proposals in this discussion forum. I am sorry to see these discussions are taking place in the “General Q/A” discussion forum instead of this forum. This “High Performance Interface WG” (previously “High Frequency trading” forum) was specifically created to discuss these.

Regards,  
Mahesh

---

<div class="post-metadata">

**Author:** ![rolfandersson58\_x](https://avatars.discourse-cdn.com/v4/letter/r/b9e5f3/32.png) [@rolfandersson58\_x](https://forum.fixtrading.org/u/rolfandersson58_x)\
**Post date:** [August 7, 2013, 6:18am UTC](https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738/3 "2013-08-07T06:18:11Z")

</div>

Mahesh,

for the past year, most of the discussions within the HPWG have taken place outside of the FPL discussion forums. It was when the proposals were published that it was decided to move back to the FPL forums.

Best,  
Rolf

> …  
> I am surprised that FPL Program Office / FIX Protocol Ltd. [fpl@fixprotocol.org](mailto:fpl@fixprotocol.org) has NOT announced these proposals in this discussion forum. I am sorry to see these discussions are taking place in the “General Q/A” discussion forum instead of this forum. This “High Performance Interface WG” (previously “High Frequency trading” forum) was specifically created to discuss these.
> 
> Regards,  
> Mahesh

---

<div class="post-metadata">

**Author:** ![bschnei4\_x](https://avatars.discourse-cdn.com/v4/letter/b/e36b37/32.png) [@bschnei4\_x](https://forum.fixtrading.org/u/bschnei4_x)\
**Post date:** [October 30, 2013, 5:11am UTC](https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738/4 "2013-10-30T05:11:56Z")

</div>

Mahesh/Rolf, are any of the approaches being favored over the others?&nbsp; I was trying to understand if all three approaches were going to be supported, or if one will ultimately prevail.&nbsp; I realize there are pros/cons to each, so didn't know if there was a single approach that was gaining momentum.

Thanks for any thoughts.

Regards,

-Brian Schneider

---

<div class="post-metadata">

**Author:** ![rolfandersson58\_x](https://avatars.discourse-cdn.com/v4/letter/r/b9e5f3/32.png) [@rolfandersson58\_x](https://forum.fixtrading.org/u/rolfandersson58_x)\
**Post date:** [October 30, 2013, 5:45am UTC](https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738/5 "2013-10-30T05:45:14Z")

</div>

Brian,

all three proposals will be supported as far as I know, but I would guess that SBE will be favored if it gets traction as it is the only encoding that is under FPL control. The three initiatives are different in nature; the ASN proposal is mature and highly efficient, the GPB proposal is basically a set of rules for automatic template construction based on the FIX repository, and SBE is more of a new encoding although not entirely a green-field exercise.

I initially hoped that Google would participate and add some missing but critical pieces to GPB, but they (Google) told us &nbsp;that it wasn't going to happen and if they would make any changes it would be to remove GPB features, not add new ones.

The SBE effort will likely gain traction as more designers and implementers begin to review and implement. I believe there is much more to do before the SBE spec is ready for prime time, but CME is putting its weight behind SBE, both by funding its development and by being an early adopter. CME's new market data protocol is roughly based on the pre-release SBE spec if I have understood correctly.

Fred Malabre and Hanno Klein are running the working group so they would be the guys to talk to to get more info.

Hope this helps,

Rolf

---

<div class="post-metadata">

**Author:** ![rolfandersson58\_x](https://avatars.discourse-cdn.com/v4/letter/r/b9e5f3/32.png) [@rolfandersson58\_x](https://forum.fixtrading.org/u/rolfandersson58_x)\
**Post date:** [October 30, 2013, 5:50am UTC](https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738/6 "2013-10-30T05:50:38Z")

</div>

Mahesh, just a quick note on your comment that ASN cannot perform best for a single need.

Alessandro, who is heading the ASN encoding subgroup, has demonstrated that their proposal has very high performance. I suggest you review their test results.

My view is that ASN can pretty much do anything that you would like to do in SBE. They just do it within a different framwork.

Re SBE controlled by FPL - I believe this will be the top argument for not re-using an external encoding. The drawback is that FPL needs to make sure that the SBE encoding is complete, well-defined, verified, documented and that there is support available, possibly also good open-source implementations for the major programming environments. Time will tell.

We have an earlier example in FAST - it was widely adopted very quickly, but it also suffered from underspecification and dialects were created early on.

/Rolf

---

<div class="post-metadata">

**Author:** ![tangking\_x](https://avatars.discourse-cdn.com/v4/letter/t/e36b37/32.png) [@tangking\_x](https://forum.fixtrading.org/u/tangking_x)\
**Post date:** [November 4, 2014, 11:53am UTC](https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738/7 "2014-11-04T11:53:50Z")

</div>

How to use the SBE tools to generate the C++ code

---

<div class="post-metadata">

**Author:** ![hanno.klein](https://yyz2.discourse-cdn.com/flex010/user_avatar/forum.fixtrading.org/hanno.klein/32/38_2.png) [@hanno.klein](https://forum.fixtrading.org/u/hanno.klein)\
**Post date:** [November 4, 2014, 12:09pm UTC](https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738/8 "2014-11-04T12:09:05Z")

</div>

SBE is currently only a specification that has been published here: [http://www.fixtradingcommunity.org/pg/structure/tech-specs/simple-binary-encoding](http://www.fixtradingcommunity.org/pg/structure/tech-specs/simple-binary-encoding). What “SBE tools” are you referring to? Do you have a link?

---

<div class="post-metadata">

**Author:** ![yuvalcohen](https://avatars.discourse-cdn.com/v4/letter/y/9fc29f/32.png) [@yuvalcohen](https://forum.fixtrading.org/u/yuvalcohen)\
**Post date:** [November 4, 2014, 2:22pm UTC](https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738/9 "2014-11-04T14:22:43Z")

</div>

Here is the link for the SBE open source.

> **[real-logic/simple-binary-encoding](https://github.com/real-logic/simple-binary-encoding)**
>
> simple-binary-encoding - Simple Binary Encoding (SBE) - High Performance Message Codec

---

<div class="post-metadata">

**Author:** ![tangking\_x](https://avatars.discourse-cdn.com/v4/letter/t/e36b37/32.png) [@tangking\_x](https://forum.fixtrading.org/u/tangking_x)\
**Post date:** [November 5, 2014, 1:10am UTC](https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738/10 "2014-11-05T01:10:28Z")

</div>

Hi Klein,Thank you for your reply，Here is the link for the SBE tools：

> **[real-logic/simple-binary-encoding](https://github.com/real-logic/simple-binary-encoding/wiki/Sbe-Tool-Guide)**
>
> simple-binary-encoding - Simple Binary Encoding (SBE) - High Performance Message Codec

“The tool will accept options using the system property option format as follows:  
java [-Doption=value] -jar sbe.jar \<message-declarations-file.xml\>”

I use this command：  
java -sbe.target.language=Cpp98 -jar sbe.jar my.xml  
but Without success  
use command “java -jar sbe.jar my.xml“ is success，but defaults to Java，I need C++ code

---

<div class="post-metadata">

**Author:** ![hanno.klein](https://yyz2.discourse-cdn.com/flex010/user_avatar/forum.fixtrading.org/hanno.klein/32/38_2.png) [@hanno.klein](https://forum.fixtrading.org/u/hanno.klein)\
**Post date:** [November 5, 2014, 9:29am UTC](https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738/11 "2014-11-05T09:29:05Z")

</div>

I see that the open source on github supposedly also supports Cpp98 and CSharp. FIX Trading Community is not providing the open source, i.e. please use the github website to get in touch with those that have provided the software. I am not familiar with it, maybe others can help.

---

<div class="post-metadata">

**Author:** ![sirinath\_x](https://yyz2.discourse-cdn.com/flex010/user_avatar/forum.fixtrading.org/sirinath_x/32/163_2.png) [@sirinath\_x](https://forum.fixtrading.org/u/sirinath_x)\
**Post date:** [July 11, 2015, 9:43am UTC](https://forum.fixtrading.org/t/proposals-from-the-high-performance-working-group-sbe-gpb-asn-1/12738/12 "2015-07-11T09:43:19Z")

</div>

Hello,

You guys should consider some of the common formats for transport as there are existing software to decode these message types:

Simple Binary Encoding  
Google Protocol Buffers  
Google FlatBuffers  
Apache Thrift  
Apache Avro  
MessagePack  
Cap’n Proto

Some would outperform other but API simplicity can be sometimes the deciding factor when latency is not the biggest deciding factor. Also users have a choice.

Suminda
