demo-node-quickfix

Demo node-quickfix, a node.js wrapper around the QuickFIX financial server

https://github.com/joelparkerhenderson/demo-node-quickfix

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.6%) to scientific vocabulary
Last synced: 8 months ago · JSON representation ·

Repository

Demo node-quickfix, a node.js wrapper around the QuickFIX financial server

Basic Info
  • Host: GitHub
  • Owner: joelparkerhenderson
  • Default Branch: master
  • Size: 20.3 MB
Statistics
  • Stars: 4
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 7 years ago · Last pushed about 1 year ago
Metadata Files
Readme Citation

README.md

Demo node-quickfix

Demonstration of node-quickfix, a node.js wrapper of the QuickFIX financial server library.

See https://github.com/Trumid/node-quickfix

See https://github.com/joelparkerhenderson/demo_quickfix

Install QuickFIX

Download quickfix tar here: http://www.quickfixengine.org/

Warning: the current version of quickfix is 1.15.1 as of 2018-12-21, and this version seems to be incompatible with node-quickfix. See https://github.com/Trumid/node-quickfix/issues/48. For us, a workaround is to downgrade to quickfix 1.14.3.

Check required dependencies: http://www.quickfixengine.org/quickfix/doc/html/dependencies.html

Install via the following instructions: http://www.quickfixengine.org/quickfix/doc/html/building.html

If you need help with building, then see our demo https://github.com/joelparkerhenderson/demo_quickfix

QuickFIX should create files that you will include in the next step:

sh ls /usr/local/include/quickfix/

Copy QuickFIX config

The QuickFIX software directory has a top-level file config.h.

Copy the file to your system's typical directory of include files, which is usually /usr/local/include/quickfix.

Example:

sh sudo copy config.h /usr/local/include/quickfix/

Install node

Install node tooling:

sh curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash . ~/.nvm/nvm.sh nvm install node npm install -g node-gyp

Install node-quickfix

Clone:

sh git clone https://github.com/Trumid/node-quickfix.git cd node-quickfix

Verify gyp

Verify the steps for node-gyp are successful:

sh node-gyp clean node-gyp configure node-gyp build

If you get this error in the logs:

info lifecycle node-quickfix@2.1.1~install: Failed to exec install script

Then be sure you're trying to use quickfix version 1.14.3 or similar compatibile version. This is because currently, as of 2018-12-21, the current quickfix version 1.15.1 is not compatible with the currentnode-quickfix version.

If you get this error:

../src/FixConnection.h:23:29: fatal error: quickfix/config.h: No such file or directory #include "quickfix/config.h"

Then be sure you copied the quickfix file config.h to a suitable locaiton, such as your system's typical include directory, for example:

sh sudo cp ~/quickfix/config.h /usr/local/include/quickfix/

If you get this error:

/usr/bin/ld: cannot find -lxml2 collect2: error: ld returned 1 exit status

Then install libxml:

sh sudo yum install libxml2 sudo yum install libxml2-devel

Retry as needed.

Build

Build:

sh npm install

If you get this error in the logs:

info lifecycle node-quickfix@2.1.1~install: Failed to exec install script

Then be sure the steps above worked for node-gyp.

If you get this error:

found 3 vulnerabilities (1 low, 1 high, 1 critical) run `npm audit fix` to fix them, or `npm audit` for details

Then audit:

npm audit

We saw these issues:

  • Package growl has a command injection.

  • Package debug has a regular expression denial of service.

  • Package minimatch has a regular expression denial of service.

In our case, these issues all are for development, not production. The long-term solution is to upgrade the node-quickfix repo with updated dependencies.

Test

Test: npm test

If you get this error:

Error: libquickfix.so.16: cannot open shared object file: No such file or directory

Then find the file:

sudo yum install mlocate sudo updatedb locate libquickfix.so.16

And if your setup is typical, then you should see the files here:

/usr/local/lib/libquickfix.so.16 /usr/local/lib/libquickfix.so.16.0.1

Then run:

sh sudo ldconfig

Then verify that your library path is set, and also lists the directory that has your libquickfiles:

sh echo $LD_LIBRARY_PATH

The $LD_LIBRARY_PATH environment variable is consulted at time of execution, to provide a list of additional directories in which to search for dynamically linkable libraries.

If your library path is not set, i.e. blank, then set it:

sh export LD_LIBRARY_PATH=/usr/local/lib/

If your library path is set, but does not list the directory that has your libquickfix files:

sh export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib/"

Retry as needed.

Success looks like this:

``` npm test

node-quickfix@2.1.1 test /home/ec2-user/node-quickfix mocha

initiator ✓ should throw if not supplied options ✓ should throw if supplied options with no settings or propertiesFile ✓ should create a new initiator instance with fix beginString, senderCompID, targetCompID on defined session (3093ms) ✓ should start and stop when called (3131ms)

acceptor ✓ should throw if not supplied options ✓ should throw if supplied options with no settings or propertiesFile ✓ should create a new acceptor instance with fix beginString, senderCompID, targetCompID on defined session (3168ms) ✓ should start and stop when called (3146ms)

8 passing (13s) ```

Owner

  • Name: Joel Parker Henderson
  • Login: joelparkerhenderson
  • Kind: user
  • Location: California

Software developer. Technology consultant. Creator of GitAlias.com, NumCommand.com, SixArm.com, and many open source projects.

Citation (CITATION.cff)

cff-version: 1.2.0
title: Demo node-quickfix
message: >-
  If you use this work and you want to cite it,
  then you can use the metadata from this file.
type: software
authors:
  - given-names: Joel Parker
    family-names: Henderson
    email: joel@joelparkerhenderson.com
    affiliation: joelparkerhenderson.com
    orcid: 'https://orcid.org/0009-0000-4681-282X'
identifiers:
  - type: url
    value: 'https://github.com/joelparkerhenderson/demo-node-quickfix/'
    description: Demo node-quickfix
repository-code: 'https://github.com/joelparkerhenderson/demo-node-quickfix/'
abstract: >-
  Demo node-quickfix
license: See license file

GitHub Events

Total
  • Push event: 1
Last Year
  • Push event: 1

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 7
  • Total Committers: 1
  • Avg Commits per committer: 7.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Joel Parker Henderson j****l@j****m 7
Committer Domains (Top 20 + Academic)