bfe77a7c2e
Add event machine websocket server
2024-02-18 21:15:55 +01:00
9f8fce38ce
Add message processor implementation
2024-02-18 21:15:34 +01:00
f29f429c3c
Implement matching engine
2024-02-18 20:13:58 +01:00
7278b77702
Use symbols to represent side
2024-02-18 19:31:32 +01:00
66044ddae1
Add message parser
2024-02-14 19:33:05 +01:00
dd0b83734d
Add message struct definitions
...
All message structs required to run the exchange
2024-02-10 11:21:21 +01:00
dd1ac04fc7
Remove gitlab ci configuration
...
We are not hosting on gitlab anymore
2024-02-10 11:19:38 +01:00
4a087bc2eb
Rename mock connection interface
...
Rename inbox to messages to be more consistent
2024-02-10 11:18:54 +01:00
19afa23021
Add mock queue implementation
2024-02-10 11:18:06 +01:00
b9ea7cca30
Implement basic message broker
2024-02-03 22:25:37 +01:00
14557d2a34
Add method to retrieve a user's orders in a limit order book
2024-02-03 21:29:27 +01:00
1bdb619f6c
Implement basic capped trade tracker
2024-02-03 21:04:09 +01:00
16028989e4
Allow iteration of limit volume tracker entries
2024-02-03 20:29:38 +01:00
4b48904f1e
Rename new_volume to quantity in LimitVolumeChange
2024-02-03 20:24:07 +01:00
64b17e0803
Reformat matcher
2024-02-03 20:21:40 +01:00
8c33a21052
Add AGPLv3 license
2024-02-03 19:06:50 +01:00
17ce4193dd
Add event machine and json validation dependencies
2024-02-03 18:47:01 +01:00
bd0aa1245a
Use nested hash instead of tuple for hash keys
2024-01-22 16:54:49 +01:00
dd441df8ff
Return the cancelled order explicitly
2024-01-21 19:00:17 +01:00
cd2262e895
Separate LimitOrderBook#match into its own method
2024-01-21 18:59:40 +01:00
0ba5914b9c
Move next_trade to matcher implementation
2024-01-20 17:27:09 +01:00
188f45d4c4
Implement a limit volume tracker
...
Implement the limit volume tracker that keeps track of the limit
volumes and emits change events that can be used by clients to
update their copy of the order book
2023-11-08 22:47:08 +01:00
b7df45794c
Refactor how we require the book commponents
2023-11-08 22:44:47 +01:00
cc624fb93a
Bump standard ruby version
2023-11-08 20:36:10 +01:00
1e62686e69
Rename OrderBook to LimitOrderBook
2023-11-08 20:35:14 +01:00
509b00bb14
Move order book to Rex::Book namespace
2023-11-08 20:33:49 +01:00
0efb6b0e88
Remove limit volume tracking from order book
...
It is not super relevant for the current matching engine,
we are going to solve this in the server implementation
2023-10-30 20:43:49 +01:00
79be3b534c
Implement limit volume tracking
2023-10-29 20:07:39 +01:00
87f56e6e9b
Remove unused exception
2023-10-29 20:07:39 +01:00
5862368498
Rename amount to quantity
...
More idiomatic naming for the order quantities.
2023-10-29 20:07:39 +01:00
2b9c82c4f6
Add stack overflow based test case for matcher implementation
2023-10-29 20:07:39 +01:00
a95062234d
Ignore spec files in coverage reports
2023-10-29 20:07:39 +01:00
55f8652c64
Increase branch test coverage
2023-10-29 20:07:39 +01:00
7191df2a90
Add automatic order id assignment to order book
2023-10-29 20:07:39 +01:00
8668ad8927
Add add_and_match_order method to orderbook
2023-10-28 23:00:09 +02:00
37435355ae
Implement matching system
2023-10-28 22:42:19 +02:00
57436c9eb0
Finish basic order book implementation
2023-10-28 19:26:53 +02:00
c16e705a4c
Finish limit implementation
2023-10-28 14:06:21 +02:00
b3b31427db
Add factory for orders
2023-10-28 14:06:03 +02:00
d168a36fda
Add simplecov for coverage reports
2023-10-28 11:33:28 +02:00
9582315e59
Add factory bot dependency
2023-10-28 11:31:54 +02:00
986fc47c73
Fix standard ruby style issues
2023-10-27 19:14:57 +02:00
e92a3b1102
Add Order#filled? method
2023-10-27 19:09:24 +02:00
f2f051c3a4
Remove default rspec test case
2023-10-27 19:08:46 +02:00
a51c0724c2
Add new models to rex library
2023-10-27 14:57:04 +02:00
44ab975d2f
Add order book scaffolding
2023-10-27 14:56:35 +02:00
da31634600
Implement limit
2023-10-27 14:56:19 +02:00
59420ee879
Implement order model
2023-10-27 14:56:05 +02:00
42758636b4
Add Gemfile.lock
2023-10-27 14:55:53 +02:00
f1bad8d91a
Fill out gemspec
2023-10-27 14:55:38 +02:00