Skip to content

Commit 191e3f8

Browse files
committed
Add baseline for Draft Standard errata
1 parent 1d65ba4 commit 191e3f8

File tree

13 files changed

+3845
-0
lines changed

13 files changed

+3845
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Contents
2+
========
3+
4+
[Title](00Title.md)
5+
6+
[1. Introduction](01Introduction.md)
7+
8+
[2. Field Encoding](02FieldEncoding.md)
9+
10+
[3. Message Structure](03MessageStructure.md)
11+
12+
[4. Message Schema](04MessageSchema.md)
13+
14+
[5. Schema Extension Mechanism](05SchemaExtensionMechanism.md)
15+
16+
[6. Usage Guidelines](06UsageGuidelines.md)
17+
18+
[7. Examples](07Examples.md)
19+
20+
[8. Release Notes](08ReleaseNotes.md)

v1-0-DRAFT_STANDARD/doc/00Title.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<img src="media/image1.jpg" width="248" height="54" />
2+
3+
<span id="fix-simple-binary-encoding" class="anchor"><span id="DocTitle" class="anchor"></span></span>
4+
5+
# Simple Binary Encoding
6+
## Technical Specification
7+
8+
<span id="_Toc105491793" class="anchor"><span id="RevNum" class="anchor"></span></span>Version 1.0 <span id="RevDate" class="anchor"></span>– Draft Standard – June 16, 2016
9+
10+
THIS DOCUMENT IS A DRAFT STANDARD FOR A PROPOSED FIX TECHNICAL STANDARD. A DRAFT STANDARD HAS BEEN APPROVED BY THE GLOBAL TECHNICAL COMMITTEE AS THE FINAL STEP IN CREATING A NEW FIX TECHNICAL STANDARD. POTENTIAL ADOPTERS ARE STRONGLY ENCOURAGED TO BEGIN WORKING WITH THE DRAFT STANDARD AND TO PROVIDE FEEDBACK TO THE GLOBAL TECHNICAL COMMITTEE AND THE WORKING GROUP THAT SUBMITTED THE PROPOSAL. THE FEEDBACK TO THE DRAFT STANDARD WILL DETERMINE WHEN TWO INTEROPERABLE IMPLEMENTATIONS HAVE BEEN ESTABLISHED AND THE DRAFT STANDARD CAN BE PROMOTED TO BECOME A NEW FIX TECHNICAL STANDARD.
11+
12+
**
13+
**
14+
15+
<span id="_Toc105491794" class="anchor"></span>DISCLAIMER
16+
17+
THE INFORMATION CONTAINED HEREIN AND THE FINANCIAL INFORMATION EXCHANGE PROTOCOL (COLLECTIVELY, THE "FIX PROTOCOL") ARE PROVIDED "AS IS" AND NO PERSON OR ENTITY ASSOCIATED WITH THE FIX PROTOCOL MAKES ANY REPRESENTATION OR WARRANTY, EXPRESS OR IMPLIED, AS TO THE FIX PROTOCOL (OR THE RESULTS TO BE OBTAINED BY THE USE THEREOF) OR ANY OTHER MATTER AND EACH SUCH PERSON AND ENTITY SPECIFICALLY DISCLAIMS ANY WARRANTY OF ORIGINALITY, ACCURACY, COMPLETENESS, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SUCH PERSONS AND ENTITIES DO NOT WARRANT THAT THE FIX PROTOCOL WILL CONFORM TO ANY DESCRIPTION THEREOF OR BE FREE OF ERRORS. THE ENTIRE RISK OF ANY USE OF THE FIX PROTOCOL IS ASSUMED BY THE USER.
18+
19+
NO PERSON OR ENTITY ASSOCIATED WITH THE FIX PROTOCOL SHALL HAVE ANY LIABILITY FOR DAMAGES OF ANY KIND ARISING IN ANY MANNER OUT OF OR IN CONNECTION WITH ANY USER'S USE OF (OR ANY INABILITY TO USE) THE FIX PROTOCOL, WHETHER DIRECT, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL (INCLUDING, WITHOUT LIMITATION, LOSS OF DATA, LOSS OF USE, CLAIMS OF THIRD PARTIES OR LOST PROFITS OR REVENUES OR OTHER ECONOMIC LOSS), WHETHER IN TORT (INCLUDING NEGLIGENCE AND STRICT LIABILITY), CONTRACT OR OTHERWISE, WHETHER OR NOT ANY SUCH PERSON OR ENTITY HAS BEEN ADVISED OF, OR OTHERWISE MIGHT HAVE ANTICIPATED THE POSSIBILITY OF, SUCH DAMAGES.
20+
21+
**DRAFT OR NOT RATIFIED PROPOSALS** (REFER TO PROPOSAL STATUS AND/OR SUBMISSION STATUS ON COVER PAGE) ARE PROVIDED "AS IS" TO INTERESTED PARTIES FOR DISCUSSION ONLY. PARTIES THAT CHOOSE TO IMPLEMENT THIS DRAFT PROPOSAL DO SO AT THEIR OWN RISK. IT IS A DRAFT DOCUMENT AND MAY BE UPDATED, REPLACED, OR MADE OBSOLETE BY OTHER DOCUMENTS AT ANY TIME. THE FIX GLOBAL TECHNICAL COMMITTEE WILL NOT ALLOW EARLY IMPLEMENTATION TO CONSTRAIN ITS ABILITY TO MAKE CHANGES TO THIS SPECIFICATION PRIOR TO FINAL RELEASE. IT IS INAPPROPRIATE TO USE FIX WORKING DRAFTS AS REFERENCE MATERIAL OR TO CITE THEM AS OTHER THAN “WORKS IN PROGRESS”. THE FIX GLOBAL TECHNICAL COMMITTEE WILL ISSUE, UPON COMPLETION OF REVIEW AND RATIFICATION, AN OFFICIAL STATUS ("APPROVED") OF/FOR THE PROPOSAL AND A RELEASE NUMBER.
22+
23+
No proprietary or ownership interest of any kind is granted with respect to the FIX Protocol (or any rights therein).
24+
25+
Copyright 2013-2016 FIX Protocol Ltd., all rights reserved.
26+
27+
<img src="media/image2.png" width="87" height="31" />
28+
FIX Simple Binary Encoding by [FIX Protocol Ltd.](http://www.fixtradingcommunity.org/) is licensed under a [Creative Commons Attribution-NoDerivatives 4.0 International License](http://creativecommons.org/licenses/by-nd/4.0/).
29+
Based on a work at <https://github.com/FIXTradingCommunity/fix-simple-binary-encoding>
Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
Introduction
2+
=========================================================================================================================================================
3+
4+
FIX Simple Binary Encoding (SBE) targets high performance trading
5+
systems. It is optimized for low latency of encoding and decoding while
6+
keeping bandwidth utilization reasonably small. For compatibility, it is
7+
intended to represent all FIX semantics.
8+
9+
This encoding specification describes the wire protocol for messages.
10+
Thus, it provides a standard for interoperability between communicating
11+
parties. Users are free to implement the standard in a way that best
12+
suits their needs.
13+
14+
The encoding standard is complimentary to other FIX standards for
15+
session protocol and application level behavior.
16+
17+
Binary type system
18+
----------------------------------------------------------------------------------------------------------------
19+
20+
In order to support traditional FIX semantics, all the documented field
21+
types are supported. However, instead of printable character
22+
representations of tag-value encoding, the type system binds to native
23+
binary data types, and defines derived types as needed.
24+
25+
The binary type system has been enhanced in these ways:
26+
27+
- Provides a means to specify precision of decimal numbers and
28+
timestamps, as well as valid ranges of numbers.
29+
30+
- Differentiates fixed-length character arrays from variable-length
31+
strings. Allows a way to specify the minimum and maximum length of
32+
strings that an application can accept.
33+
34+
- Provides a consistent system of enumerations, Boolean switches and
35+
multiple-choice fields.
36+
37+
Design principles
38+
---------------------------------------------------------------------------------------------------------------
39+
40+
The message design strives for direct data access without complex
41+
transformations or conditional logic. This is achieved by:
42+
43+
- Usage of native binary data types and simple types derived from
44+
native binaries, such as prices and timestamps.
45+
46+
- Preference for fixed positions and fixed length fields, supporting
47+
direct access to data and avoiding the need for management of heaps
48+
of variable-length elements which must be sequentially processed.
49+
50+
Message schema
51+
------------------------------------------------------------------------------------------------------------
52+
53+
This standard describes how fields are encoded and the general structure
54+
of messages. The content of a message type is specified by a message
55+
schema. A message schema tells which fields belong to a message and
56+
their location within a message. Additionally, the metadata describes
57+
valid value ranges and information that need not be sent on the wire,
58+
such as constant values.
59+
60+
Message schemas may be based on standard FIX message specifications, or
61+
may be customized as needed by agreement between counterparties.
62+
63+
Glossary
64+
------------------------------------------------------------------------------------------------------
65+
66+
**Data type** - A field type with its associated encoding attributes,
67+
including backing primitive types and valid values or range. Some types
68+
have additional attributes, e.g. epoch of a date.
69+
70+
**Encoding** - a message format for interchange. The term is commonly used
71+
to mean the conversion of one data format to another, such as text to
72+
binary. However, Simple Binary Encoding strives to use native binary
73+
data types in order to make conversion unnecessary, or at least trivial.
74+
Encoding also refers to the act of formatting a message, as opposed to
75+
decoding.
76+
77+
**Message schema** - metadata that specifies messages and their data
78+
types and identifiers. Message schemas may be disseminated out of band.
79+
For Simple Binary Encoding, message schemas are expressed as an XML
80+
document that conforms to an XML schema that is published as part of
81+
this standard.
82+
83+
**Message template** - metadata that specifies the fields that belong to
84+
one particular message type. A message template is contained by a
85+
message schema.
86+
87+
**Session protocol** - a protocol concerned with the reliable delivery of
88+
messages over a transport. FIX protocol makes a distinction between
89+
session protocol and the encoding of a message payload, as described by
90+
this document. See the specifications section of FIX protocol web site
91+
for supported protocols. The original FIX session protocol is known as
92+
FIXT.
93+
94+
**XML schema** - defines the elements and attributes that may appear in an
95+
XML document. The SBE message schema is defined in W3C (XSD) schema
96+
language since it is the most widely adopted format for XML schemas.
97+
98+
Documentation
99+
-----------------------------------------------------------------------------------------------------------
100+
101+
This document explains:
102+
103+
- The binary type system for field encoding
104+
105+
- Message structure, including field arrangement, repeating groups,
106+
and relationship to a message header that may be provided by a
107+
session protocol.
108+
109+
- The Simple Binary Encoding message schema.
110+
111+
### Specification terms
112+
113+
These key words in this document are to be interpreted as described in
114+
[Internet Engineering Task Force RFC2119](http://www.apps.ietf.org/rfc/rfc2119.html). These terms indicate
115+
an absolute requirement for implementations of the standard: "**must**",
116+
or "**required**".
117+
118+
This term indicates an absolute prohibition: "**must not**".
119+
120+
These terms indicate that a feature is allowed by the standard but not
121+
required: "**may**", "**optional**". An implementation that does not
122+
provide an optional feature must be prepared to interoperate with one
123+
that does.
124+
125+
These terms give guidance, recommendation or best practices:
126+
"**should**" or "**recommended**". A recommended choice among
127+
alternatives is described as "**preferred**".
128+
129+
These terms give guidance that a practice is not recommended: "**should not**"
130+
or "**not recommended**".
131+
132+
### Document format
133+
134+
In this document, these formats are used for technical specifications
135+
and data examples.
136+
137+
This is a sample encoding specification
138+
139+
```xml
140+
<type name="short" primitiveType="int16" semanticType="int" />
141+
```
142+
143+
This is sample data as it would be transmitted on the wire
144+
145+
`10270000`
146+
147+
References
148+
-------------------------------------------------------------------------------------------------------------------------------------------------------
149+
150+
### Related FIX Standards
151+
152+
*Simple Open Framing Header*, FIX Protocol, Limited. Release Candidate 1
153+
specification has been published at
154+
<http://www.fixtradingcommunity.org/>
155+
156+
For FIX semantics, see the current FIX message specification, which is
157+
currently [FIX 5.0 Service Pack 2](http://www.fixtradingcommunity.org/pg/structure/tech-specs/fix-version/50-service-pack-2)
158+
with Extension Packs.
159+
160+
### Dependencies on other standards
161+
162+
SBE is dependent on several industry standards. Implementations must
163+
conform to these standards to interoperate. Therefore, they are
164+
normative for SBE.
165+
166+
[IEEE 754-2008](http://ieeexplore.ieee.org/servlet/opac?punumber=4610933) A
167+
Standard for Binary Floating-Point Arithmetic
168+
169+
[ISO 639-1:2002](http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=22109)
170+
Codes for the representation of names of languages - Part 1: Alpha-2
171+
code
172+
173+
[ISO 3166-1:2013](http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=63545)
174+
Codes for the representation of names of countries and their
175+
subdivisions - Part 1: Country codes
176+
177+
[ISO 4217:2008](http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=46121)
178+
Codes for the representation of currencies and funds
179+
180+
[ISO 8601:2004](http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=40874)
181+
Data elements and interchange formats - Information interchange -
182+
Representation of dates and times
183+
184+
[ISO 10383:2012](http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=61067)
185+
Securities and related financial instruments - Codes for exchanges and
186+
market identification (MIC)
187+
188+
XML 1.1 schema standards are located here [W3C XML Schema](http://www.w3.org/XML/Schema.html#dev)

0 commit comments

Comments
 (0)