Giter Site home page Giter Site logo

moontrade / quickfix Goto Github PK

View Code? Open in Web Editor NEW

This project forked from quickfixgo/quickfix

0.0 0.0 0.0 24.63 MB

:rocket: The Go FIX protocol library

Home Page: https://www.quickfixgo.org/

License: Other

Makefile 0.24% Go 92.96% Ruby 6.68% Shell 0.06% Batchfile 0.04% PLpgSQL 0.02%

quickfix's Introduction

QuickFIX/Go

Build Status GoDoc 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 and configured on your machine (version 1.13+ is preferred, but the minimum required version is 1.6).

Next, using Git, clone the repository via git clone [email protected]:quickfixgo/quickfix.git

Installing Dependencies

As of Go version 1.13, QuickFIX/Go uses modules to manage dependencies. You may require GO111MODULE=on. To install dependencies, run

go mod download

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/updating a dependency

If you are adding or updating a dependency, you will need to update the go.mod and go.sum 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.

  1. Add or update the dependency like usual:
go get -u github.com/foo/bar
  1. Update the module-related files:
go mod tidy
  1. Review the changes in git and commit them.

Note that to specify a specific revision, you can manually edit the go.mod file and run go mod tidy

Licensing

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

quickfix's People

Contributors

ackleymi avatar babaev avatar bhaan avatar blutack avatar brobits avatar cbusbey avatar daemonl avatar dependabot-preview[bot] avatar fedepaol avatar ferhatelmas avatar hyde-zhang avatar ijufumi avatar jfyuen avatar johndydo avatar lenimartin avatar linmaosong2018 avatar mgatny avatar michaelwilner avatar oczio avatar pdaures avatar pfeairheller avatar reddec avatar reedom avatar rgvs avatar rpkamp avatar rubensayshi avatar sami-sweng avatar stanche avatar toshiyuki-tega avatar zherr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.