This project is a framework to quickly connect with cryptocurrency and traditional exchanges that utillize REST JSON, FIX or Websockets.
Build & Run Instructions
Run build/linux/deploy_tools.sh to install required tools
Run build/linux/genproj.sh once to generate makefiles for the project
Copy bin/.json & bin/.properties to bin/debug on bin/release and modify the config with the relevant api keys and proxy settings
- Tested with Ubuntu 18 on WSL
- Run make -f generators.make help and make -f generators.make help Otherwise
- Build Generators
- make -f generators.make all
- Build Trader
- make -f trader.make all
- Run using script build/linux/run_debug_.sh
- Run build/linux/debug_.sh
- Run build\win\shell.cmd
- Run build\win\deploy_tools.cmd to download necessary packages
- Run build\win\genproj.cmd once to generate Visual Studio 2015 or Visual Studio 2017 projects
- Open and compile codegen.sln
- Open and compile trader.sln
- codegen - This is the code generator. It includes several code generators to transform, json, xml to c++ code. This needs to be built before apis, configs, databases, interface
- apis - This runs codegen to transform the hyperschema.json files in data/apis to c++ code. Hyperschema is a proposed format to describe REST/JSON apis as json files (Hyperschema Format)
- interfaces - This runs codegen to transform the fix api xml specs to a c++ interface that can be used to standardize the communication interface between the various modules.
- configs - This runs codegen to transform the config.json files in data/configs to c++ code. These are used for the simple key-value pair json configs to setup api keys right now.
- databases - This runs codegen to transform the databaseschema.json files data/databases to c++ code.
- gencode - This re-runs premake to generate the project and solutions structure. You might need to re-run this if a new file is added or generated
- genproj - This re-runs premake to generate the project and solutions structure. You might need to re-run this if a new file is added or generated
- dataconnector - This is meant to be a library that allows one to connect to multiple exchanges. It servers as an API extraction layer and exposes a standardize fix c++ interface for applications to use.
- trader - This is a sample application to interact with dataconnector
- *tests - Various test projects
- Copy bin*.json & bin*.properties to bin\debug or bin\release and modify the config with the relevant api keys and proxy settings
- Comment of/delete the proxy settings if you do not require them
- Right-click trader project and Set as StartUp Project
- Press F5 to run/debug in Visual Studio
- Install Clang Format Visual Studio Extension to format code
- Install Google Test Adapter to run tests in Visual Studio
This has not been tested
Will be supported in the near future
- Format changelist commit comments using conventional commits
- Submit pull request for review