https://github.com/da4089/simplesofh
A pure-Python implementation of the FIX Trading Community's SOFH framing protocol
https://github.com/da4089/simplesofh
fix fix-protocol fixprotocol framing-protocols sofh
Last synced: 11 months ago
JSON representation
A pure-Python implementation of the FIX Trading Community's SOFH framing protocol
- Host: GitHub
- URL: https://github.com/da4089/simplesofh
- Owner: da4089
- License: mit
- Created: 2023-04-05T23:59:18.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-04-19T16:33:28.000Z (almost 3 years ago)
- Last Synced: 2025-02-02T08:43:18.053Z (about 1 year ago)
- Topics: fix, fix-protocol, fixprotocol, framing-protocols, sofh
- Language: Python
- Homepage:
- Size: 496 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# simplesofh
A pure-Python implementation of the FIX Trading Community's SOFH
framing protocol.
## SOFH v1.0
Currently a "draft standard", SOFH v1.0 specifies:
- a 6 octet header, comprised of
- 4 octets for length, a 32 bit unsigned big-endian integer
- 2 octets for message type, a 16 bit unsigned big-endian integer
- Various message type values defined by the protocol, including 255
"private use" values from 1 to 255 decimal.
## SOFH v1.1
Currently a "release candidate 1", SOFH v1.1 specifies:
- a 6 octet header, comprised of
- 4 octets for length, a 32 bit unsigned integer
- 2 octets for message type, a 16 bit unsigned integer
- Various message type values defined by the protocol, adding SBE v2.0
and removing BSON from SOFH v1.0.
- Note that both fields are now able to be either big or little
endian, subject to "counterparty agreement". There is no indication
in the header itself which representation is used.
## CME iLink 3 "SOFH"
CME's iLink3 binary order entry protocol uses a framing protocol that
it calls SOFH, which is however incompatible with both v1.0 and v1.1
of the formal specification.
CME iLink SOFH specifies:
- a 4 octet header, comprised of
- 2 octets for length, a 16 bit unsigned little-endian integer
- 2 octets for message type, a 16 bit unsigned little-endian integer
- The message type for CME SBE v1.0 must be a little-endian value of
0xCAFE.
- Note that this value is outside the specified "private use" range
from the FIX standards.