Skip to content

Commit f179283

Browse files
authored
Merge pull request #41 from donmendelson/master
Add baseline for Version 2.0 RC1
2 parents b8bd5e7 + f5b0c1f commit f179283

14 files changed

+3851
-5
lines changed

README.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,29 @@ SBE is part of a family of protocols created by the High Performance Working Gro
1010

1111
## Versions
1212

13+
### Planned Lifecycle
14+
15+
The planned lifecycle of this project is to roll out new features in a series of release candidates. After each release candidate is approved, it will be exposed to public review. Issues may be entered here in GitHub or in a discussion forum on the FIX Trading Community site. When a version is considered complete, the last release candidate will be promoted to Draft Standard. Following further public review, a Draft Standard may be promoted to the final specification for that version. Only minor errata are permitted. To reach the final stage, the Draft Standard must be reviewed for no less than 6 months, and at least two interoperable implementations must be certified. That version is henceforth immutable.
16+
1317
### Current approved version: 1.0 Draft Standard
14-
Version 1.0 RC4 was promoted to SBE version 1.0 Draft Standard by the Global Technical Committee in June 2016.
18+
Version 1.0 RC4 was promoted to SBE version 1.0 Draft Standard by the Global Technical Committee in June 2016. The next steps are certification of at least two interopable implementations and final approval by the GTC.
1519

1620
The Draft Standard specification is available on the [FIX Trading Community site](http://www.fixtradingcommunity.org/pg/structure/tech-specs/simple-binary-encoding).
1721

18-
The RC4 specification is included here for reference only. Pull requests for that
19-
version will no longer be accepted. However, issues may be entered for corrections
20-
or enhancements to be considered for future releases.
22+
### Working version: 2.0 Release Candidate 1
23+
24+
The working group will consider issues and pull requests for the next release candidate. The planned themes for Version 2.0 Release Candidate 1 are:
25+
* Further enhancements to the schema extension mechanism
26+
* Improvement of the XML schema
27+
28+
### Conformance test suite
29+
The [SBE Conformance project](https://github.com/FIXTradingCommunity/fix-sbe-conformance) provides a conformance test suite to verify interoperability of SBE implementations. All implementors are invited to demonstrate their conformance to the standard.
2130

2231
### XML namespace
2332
The XML namespace for SBE version 1.0 message schemas is [http://fixprotocol.io/2016/sbe](http://fixprotocol.io/2016/sbe).
2433

2534
## License
26-
FIX Simple Binary Encoding specifications are © Copyright 2014-2016 FIX Protocol Ltd.
35+
FIX Simple Binary Encoding specifications are © Copyright 2014-2017 FIX Protocol Ltd.
2736

2837
<a rel="license" href="http://creativecommons.org/licenses/by-nd/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nd/4.0/88x31.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/Text" property="dct:title" rel="dct:type">FIX Simple Binary Encoding</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.fixtradingcommunity.org/" property="cc:attributionName" rel="cc:attributionURL">FIX Protocol Ltd.</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nd/4.0/">Creative Commons Attribution-NoDerivatives 4.0 International License</a>.<br />Based on a work at <a xmlns:dct="http://purl.org/dc/terms/" href="https://github.com/FIXTradingCommunity/fix-simple-binary-encoding" rel="dct:source">https://github.com/FIXTradingCommunity/fix-simple-binary-encoding</a>
2938

v2-0-RC1/doc/00Contents.md

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)

v2-0-RC1/doc/00Title.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
![](./media/image1.jpeg)
2+
3+
FIX Simple Binary Encoding
4+
==========================
5+
6+
Technical Specification
7+
8+
Working Draft for potential Version 2.0 Release Candidate 1
9+
10+
**THIS DOCUMENT IS A RELEASE CANDIDATE FOR A PROPOSED FIX TECHNICAL
11+
STANDARD. A RELEASE CANDIDATE HAS BEEN APPROVED BY THE GLOBAL TECHNICAL
12+
COMMITTEE AS AN INITIAL STEP IN CREATING A NEW FIX TECHNICAL STANDARD.
13+
POTENTIAL ADOPTERS ARE STRONGLY ENCOURAGED TO BEGIN WORKING WITH THE
14+
RELEASE CANDIDATE AND TO PROVIDE FEEDBACK TO THE GLOBAL TECHNICAL
15+
COMMITTEE AND THE WORKING GROUP THAT SUBMITTED THE PROPOSAL. THE
16+
FEEDBACK TO THE RELEASE CANDIDATE WILL DETERMINE IF ANOTHER REVISION AND
17+
RELEASE CANDIDATE IS NECESSARY OR IF THE RELEASE CANDIDATE CAN BE
18+
PROMOTED TO BECOME A FIX TECHNICAL STANDARD DRAFT.**
19+
20+
**©Copyright 2015-2017 FIX Protocol Limited**

v2-0-RC1/doc/01Introduction.md

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)