Skip to content

agflow/quickfix

This branch is 1 commit ahead of, 397 commits behind quickfixgo/quickfix:main.

Folders and files

NameName
Last commit message
Last commit date
Jul 5, 2017
Oct 7, 2017
Aug 4, 2016
May 7, 2019
Sep 25, 2019
Sep 28, 2017
Mar 22, 2018
Apr 2, 2014
Oct 7, 2017
Oct 30, 2018
Aug 14, 2017
Mar 23, 2018
Jul 17, 2019
Oct 6, 2017
Aug 30, 2013
Oct 7, 2017
Oct 7, 2017
Sep 25, 2019
Oct 6, 2016
Sep 28, 2017
Aug 12, 2016
Oct 5, 2016
Jul 17, 2019
Jul 17, 2019
Aug 18, 2016
Aug 17, 2016
May 9, 2016
Oct 10, 2016
Jan 9, 2019
Jan 9, 2019
Sep 28, 2016
Sep 27, 2016
Aug 13, 2016
Apr 18, 2016
Mar 17, 2016
Mar 17, 2016
Jun 7, 2016
Jun 7, 2016
Sep 27, 2016
Sep 27, 2016
Aug 17, 2016
Aug 17, 2016
Jun 7, 2016
Aug 17, 2016
Oct 21, 2016
Jun 7, 2016
Jun 7, 2016
Feb 5, 2016
Aug 15, 2017
Aug 15, 2017
Sep 28, 2017
Sep 28, 2017
Jul 17, 2019
Oct 3, 2016
Aug 12, 2016
Sep 27, 2016
Jan 15, 2019
Sep 28, 2017
Oct 3, 2016
Oct 6, 2016
Oct 10, 2019
Oct 6, 2016
Sep 28, 2017
Sep 28, 2017
Jan 9, 2019
Jan 15, 2019
Oct 30, 2018
Sep 28, 2016
Oct 3, 2016
Aug 12, 2016
Sep 27, 2016
Oct 2, 2017
Oct 2, 2017
Aug 9, 2016
Aug 17, 2016
Sep 28, 2017
Jan 19, 2018
Oct 24, 2016
May 7, 2019
Oct 5, 2016
Sep 28, 2017
Sep 27, 2016
Feb 6, 2019
Jul 29, 2018
Sep 28, 2017
Sep 28, 2017
Sep 24, 2016
May 16, 2014
Aug 13, 2016
May 11, 2014
Jan 15, 2019
Jan 15, 2019
Sep 29, 2017
Sep 29, 2017
Aug 19, 2016
Aug 19, 2016
Jan 5, 2018
Apr 19, 2016
Oct 26, 2015
Oct 2, 2017
Oct 2, 2017
Jan 9, 2019
Jan 14, 2019
May 7, 2019
May 7, 2019

Repository files navigation

QuickFIX/Go

GoDoc Build Status Go Report Card

Open Source FIX Protocol library implemented in Go

Getting Started and Documentation

Installation

To install QuickFIX/Go, use go get:

$ go get github.com/quickfixgo/quickfix

Staying up to date

To update QuickFIX/Go to the latest version, use go get -u github.com/quickfixgo/quickfix.

Example Apps

See examples for some simple examples of using QuickFIX/Go.

FIX Message Generation

QuickFIX/Go includes separate packages for tags, fields, enums, messages, and message components generated from the FIX 4.0 - FIX5.0SP2 specs. See:

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.

Developing QuickFIX/Go

If you wish to work on QuickFIX/Go itself, you will first need Go installed on your machine (version 1.6+ is required).

For local dev first make sure Go is properly installed, including setting up a GOPATH.

Next, using Git, clone this repository into $GOPATH/src/github.com/quickfixgo/quickfix.

Installing Dependencies

QuickFIX/Go uses dep to manage the vendored dependencies. Install dep with go get:

$ go get -u github.com/golang/dep/cmd/dep

Run dep ensure to install the correct versioned dependencies into vendor/, which Go 1.6+ automatically recognizes and loads.

$ $GOPATH/bin/dep ensure

Note: No vendored dependencies are included in the QuickFIX/Go source.

Build and Test

The default make target runs go vet and unit tests.

$ make

If this exits with exit status 0, then everything is working!

Generated Code

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-dist

If you are making changes to the generated code, please create Pull Requests for these changes for the affected repos.

Acceptance Tests

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.

To run acceptance tests,

    # generate code locally
    make generate

	# build acceptance test rig
	make build_accept

	# run acceptance tests
	make accept

Dependencies

If you are developing QuickFIX/Go, there are a few tasks you might need to perform related to dependencies.

Adding a dependency

If you are adding a dependency, you will need to update the dep manifest in the same Pull Request as the code that depends on it. You should do this in a separate commit from your code, as this makes PR review easier and Git history simpler to read in the future.

To add a dependency:

  1. Add the dependency using dep:
$ dep ensure -add github.com/foo/bar
  1. Review the changes in git and commit them.

Updating a dependency

To update a dependency to the latest version allowed by constraints in Gopkg.toml:

  1. Run:
$ dep ensure -update github.com/foo/bar
  1. Review the changes in git and commit them.

To change the allowed version/branch/revision of a dependency:

  1. Manually edit Gopkg.toml
  2. Run:
$ dep ensure
  1. Review the changes in git and commit them.

Licensing

This software is available under the QuickFIX Software License. Please see the LICENSE.txt for the terms specified by the QuickFIX Software License.

About

FIX Protocol library implemented in Go

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 91.1%
  • Ruby 6.9%
  • TSQL 1.7%
  • Makefile 0.2%
  • Shell 0.1%
  • Batchfile 0.0%