Skip to content
C++ trading and matching engine
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
m4 commit simple libevhtp example Jul 29, 2017
vendor/liquibook Import liquibook directly, rather than using submodule. Jan 13, 2018
.gitignore add rocksdb datastore and cli util Aug 3, 2017
AUTHORS initial revision Jul 29, 2017
ChangeLog initial revision Jul 29, 2017
HttpUtil.cc Multi-depth order book, aggregated or not. Aug 1, 2017
HttpUtil.h Multi-depth order book, aggregated or not. Aug 1, 2017
Makefile.am fix tests Aug 3, 2017
Market.cc trim trailing whitespace Aug 3, 2017
Market.h uuid as order id Jul 30, 2017
NEWS initial revision Jul 29, 2017
Order.cc trim trailing whitespace Aug 3, 2017
Order.h timestamp orders Jul 30, 2017
OrderFwd.h Include liquibook example mt_order_entry Jul 29, 2017
README.md README: mention libevhtp Sep 27, 2017
Util.cc Add daemon features: daemonize, write-pid-file Jul 30, 2017
Util.h Add authenticated API flow Jul 30, 2017
apiclient.js Multi-depth order book, aggregated or not. Aug 1, 2017
autogen.sh autotools: don't require README Sep 27, 2017
cli.js cli: help command Aug 2, 2017
configure.ac autotools: don't require README Sep 27, 2017
example-config-obsrv.json Add daemon features: daemonize, write-pid-file Jul 30, 2017
obdb.cc create db manip helper commands Aug 3, 2017
obsrv-tests.sh fix tests Aug 3, 2017
obsrv.cc RPC: convert /book from POST to GET; reformat apiRegistry table. Aug 1, 2017
package.json add test client Jul 29, 2017
srv.h add rocksdb datastore and cli util Aug 3, 2017
srvapi.cc trim trailing whitespace Aug 3, 2017
srvapi.h RPC: per-order info Jul 30, 2017
test-config-obsrv.json fix tests Aug 3, 2017
testcli.js

README.md

Summary

C++ order booking trading / matching engine

Dependencies

Building and installing

This uses the standard autotools pattern:

$ ./autogen.sh
$ CXXFLAGS="-O2 -Wall -g -I/usr/local/include/evhtp" ./configure
$ make			# compile
$ make check		# run tests
$ sudo make install	# install on system

Interface

obsrv speaks JSON-RPC over HTTP.

Test client

A test client cli.js is available. Run ./cli.js help for a summary of example commands:

$ ./cli.js help
Commands:
info				Show server info
market.list			Show all markets
market.add SYMBOL [booktype]	Add new market
book SYMBOL [depth]		Show order book
order order-id			Show info on a single order
order.cancel order-id		Cancel a single order
order.modify order-id		Modify a single order
order.add [json order info]	Add new order
You can’t perform that action at this time.