Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

True C++ support in exchange #99

Closed
5 tasks
egelja opened this issue Feb 23, 2024 · 4 comments
Closed
5 tasks

True C++ support in exchange #99

egelja opened this issue Feb 23, 2024 · 4 comments
Assignees

Comments

@egelja
Copy link
Member

egelja commented Feb 23, 2024

So this isn't that hard actually. We just need to tell our users to upload a statically linked so library. Then we don't even have to worry about libc or libstdc++ differences. We just dlopen and call the functions we want.

I will take this issue. Goal is to get it done by the "dress rehearsal" run of NUTC. We sorta have support with #97 and #98 (but its very jank, either going cpp -> py -> cpp or requiring an execv call, respectively).

What needs to be done to get this working is:

  • Add algo type info to firebase (@stevenewald you'll need to help me with that one)
  • Make the wrapper aware of different algo types
  • Add code to wrapper to dlopen a shared object and run its methods
  • Add code to linter to check for expected functions in the shared object and test if they work
  • Provide sample C++ project

The API with consist of four functions:

  • set_order_callback
  • on_trade_update
  • on_orderbook_update
  • on_account_update

The first one just allows us to tell the users' code what function they need to call too place an order. We will provide this for them.

@stevenewald
Copy link
Collaborator

Shelved for now unless @egelja wants to implement this e2e - can't spare bandwidth on the rest of the team

@egelja egelja reopened this Mar 22, 2024
@egelja
Copy link
Member Author

egelja commented Mar 22, 2024

I'll do it - no ETA though.

@stevenewald
Copy link
Collaborator

deadline june 25

@echavemann
Copy link
Member

lol

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants