-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
181 lines (118 loc) · 6.08 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
Open Source C++ FIX Engine
==========================
A modern open source C++ FIX framework featuring complete schema driven customisation, high performance and fast application development.
The system is comprised of a compiler for generating C++ message and field encoders,
decoders and instantiation tables; a runtime library to support the generated code
and framework; and a set of complete client/server test applications.
Features
========
* [Fix8](http://www.fix8.org) helps you get your [FIX protocol](http://www.fixprotocol.org/) client or
server up and running quickly. Using one of the standard FIX schemas you can have a FIX client or
server up and running in next to no time.
* Statically compile your FIX xml schema and quickly build your FIX application on top. If you need to
add customised messages or fields, simply update the schema and recompile.
* Fix8 is the fastest C++ Open Source FIX framework. Our testing shows that Fix8 is on average 66% faster
encoding/decoding the same message than Quickfix. See [Performance](http://fix8.org/performance.html)
to see how we substantiate this shameless bragging.
* Fix8 supports standard `FIX4.X` to `FIX5.X` and `FIXT1.X`. If you have a custom FIX variant Fix8 can
use that too. New FIX versions will be supported.
* Fix8 offers message recycling and a meta-data aware test harness.
Incorporates lock free queues, atomics and many other modern techniques.
* Fix8 contains a built-in unit test framework that's being continually revised and extended.
Fix8 also has a metadata driven test harness that can be scripted to support captured or canned data playback.
* Fix8 is a complete C++ FIX framework, including client/server session and connection classes;
support for the standard FIX field types; FIX printer, async logger, async message persister
and XML configuration classes.
* Fix8 statically supports nested components and groups to any depth. The Fix8 compiler and runtime
library takes the pain out of using repeating groups.
* Fix8 applications are fast. On production level hardware, client NewOrderSingle encode latency is now 2.2us,
and ExecutionReport decode 4.5us. Without the framework overhead, NewOrderSingle encode latency is 1.4us.
This is being continually improved.
* Fix8 has been designed to be extended, customised or enhanced. If you have special requirements, Fix8 provides
a flexible platform to develop your application on.
* Fix8 supports field and value domain validation, mandatory/optional field assertion, field ordering,
well-formedness testing, retransmission and standard session semantics.
* Fix8 runs under industry standard Linux on IA32, x86-64, Itanium, PowerPC and ARM. It also now runs on Windows. Other *NIX variants may work too.
Directory Layout
================
Directory Description
./
root directory with configure
m4/
additional m4 macros needed by configure
compiler/
the f8c compiler source
doc/
Fix8 documentation
doc/man
manpages for Fix8 utilities
doc/html
doxygen documentation (optionally generated when built)
include/
header files for the runtime library and compiler
include/ff/
header files for FastFlow
msvc/
Microsoft Visual Studio project files
runtime/
runtime library source
util/
additional utilities source
schema/
quickfix FIX xml schemas
test/
test applications client/server source
utests/
unit test applications
Documentation
=============
Documentation is available at [API Documentation](http://fix8.org/fix8/html/). All the source code is self-documenting using doxygen.
External Dependencies (required)
================================
Fix8 requires the following third-party software (header files and
libraries) being installed to build properly:
- Poco C++ Libraries [basic edition](http://pocoproject.org/download/index.html)
Additional libraries are needed for building on Windows, see https://fix8engine.atlassian.net/wiki/display/FX/Building
Optional Dependencies
=====================
You can either choose the internally supplied [Fastflow](http://calvados.di.unipi.it/dokuwiki/doku.php?id=ffnamespace:about) or use...
- Intel Threading Building Blocks [OSS edition](http://threadingbuildingblocks.org/download)
If you wish to build the html documentation, you will need:
- [Doxygen](http://www.doxygen.org)
If you wish to use BerkeleyDB for message persistence:
- [Berkeley DB C++](http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html)
If you wish to use the built-in unit tests (recommended):
- [googletest](https://code.google.com/p/googletest/downloads/list)
If you wish to use tcmalloc (recommended):
- [gperftools](https://code.google.com/p/gperftools/downloads/list)
Building on Linux/UNIX/OSX
==========================
The build system is based on automake/autoconf/libtool.
You **must** have libtool (http://www.gnu.org/software/libtool/) installed to build.
% tar xvzf 0.9.6.tar.gz
% cd fix8-0.9.6
% ./bootstrap
% ./configure
% make
% make install
If you have built the test cases, you can also run them as follows:
% make check
Building on Windows
===================
Please see https://fix8engine.atlassian.net/wiki/display/FX/Building for detailed instructions for building on Windows.
Support
=======
Please refer to the following pages for help:
- [FAQ](http://fix8.org/faq.html)
- [Fix8 support group](https://groups.google.com/forum/#!forum/fix8-support)
- [Fix8 developer group](https://groups.google.com/forum/#!forum/fix8-developer)
- [API Documentation](http://fix8.org/fix8/html)
- [Jira Issues page](https://fix8engine.atlassian.net/)
- [Fix8 News](http://blog.fix8.org/)
License
=======
Fix8 is released under the GNU LESSER GENERAL PUBLIC LICENSE Version 3 (http://www.gnu.org/licenses/lgpl.html).
See [License](http://fix8.org/faq.html#license) for more information.
More Information
================
For more information, see the [Fix8 website.](http://www.fix8.org)