Open Source FIX Protocol library implemented in Go
MessageStore
syntax changes?See v0.9.0 release notes here
With Go module support, simply add the following import
import "github.com/quickfixgo/quickfix"
to your code, and then go [build|run|test]
will automatically fetch the necessary dependencies.
Otherwise, run the following Go command to install the quickfix
package:
go get -u github.com/quickfixgo/quickfix
To send and receive messages, your application will need a few additional packages.
QuickFIX/Go maintains separate packages for tags, fields, enums, messages, and message components auto-generated from the FIX 4.0 - FIX5.0SP2 XML specifications-
For most FIX applications, these generated resources are sufficient. Custom FIX applications may generate source specific to the FIX spec of that application using the generate-fix
tool included with QuickFIX/Go.
Following installation, generate-fix
is installed to $GOPATH/bin/generate-fix
. Run $GOPATH/bin/generate-fix --help
for usage instructions.
If you wish to work on QuickFIX/Go itself, you will need Docker and VSCode on your machine.
./.devcontainer/
The default make target runs go vet and unit tests.
make
If this exits with exit status 0, then everything is working!
Generated code from the FIX40-FIX50SP2 specs are available as separate repos under the QuickFIX/Go organization. The source specifications for this generated code is located in spec/
. Generated code can be identified by the .generated.go
suffix. Any changes to generated code must be captured by changes to source in cmd/generate-fix
. After making changes to the code generator source, run the following to re-generate the source
make generate
If you are making changes to the generated code, please create Pull Requests for these changes for the affected repos.
QuickFIX/Go has a comprehensive acceptance test suite covering the FIX protocol. These are the same tests used across all QuickFIX implementations.
QuickFIX/Go acceptance tests depend on ruby in path, if you are using the dev container, it is already installed
To run acceptance tests,
# generate code locally
make generate
# build acceptance test rig
make build-test-srv
# run acceptance tests
make accept
This software is available under the QuickFIX Software License. Please see the LICENSE.txt for the terms specified by the QuickFIX Software License.