demo-node-quickfix
Demo node-quickfix, a node.js wrapper around the QuickFIX financial server
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
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
Metadata Files
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
growlhas a command injection.Package
debughas a regular expression denial of service.Package
minimatchhas 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
- Website: http://www.joelparkerhenderson.com
- Repositories: 319
- Profile: https://github.com/joelparkerhenderson
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
Top Committers
| Name | Commits | |
|---|---|---|
| Joel Parker Henderson | j****l@j****m | 7 |