9 releases (5 breaking)
0.6.0 | Feb 2, 2025 |
---|---|
0.5.1 | Feb 2, 2025 |
0.5.0 | Jan 26, 2025 |
0.4.0 | Jan 18, 2025 |
0.1.1 | Jan 1, 2025 |
#655 in Asynchronous
404 downloads per month
Used in rm_engine
99KB
2.5K
SLoC
v_exchanges
Trying to make a unified library for all crypto exchange interactions, instead of redefining the response structs again and again.
Installation
nix build
Usage
Example evocations of crate's methods are exposed in [./examples], with their [[example]]
references defined [./v_exchanges/Cargo.toml].
To run:
cargo run -p v_exchanges --example binance_market
Roadmap
- full binance integration
- Copy over
crypto-botters
- For binance, copy over the struct definitions from binance-rs
- distribute the current infrastructure to defined boundaries (add _adapters, keep generic-api-client for now (mb rename to _api_generics later)). Get responses with it.
- go into src/binance/ on ::, implement klines methods with defined xxxResponse structs, have it just cover the websocket and rest for klines. Print both in main.
- define core types
- improve error tracing. If the response fails to deserialize, want to know why. Look up how discretionary_engine does it. Want to print the actual response (+ utils functions to concat when too long (add later)), then the target type.
- now implement
Exchange
for them (same place for now). Call methods. - now implement
Exchange
for bybit.
- Copy over
- full bybit integration
- polish http interactions in using this API in other projects
- method to execute all known requests in test mode[^1], on
success
full responses, persist the returned json objects to use in test later. - use in btc_line to get Websocket interactions nice and good
- make fitted for the final stage of full integration into discretionary_engine (requires trade execution/followup methods suite), which would signify production-readiness of this crate.
[^1] where allowed, otherwise use min position size or just skip problematic endpoints
Relevant projects and documentations
- crypto-botters, from where I stole the entire
generic-api-client
(asv_exchanges_api_generics
). - binance-rs, which provided a cheat-sheet for so many binance interactions and best-practices on testing.
Binance main docs: https://developers.binance.com/docs Binance spot docs: https://github.com/binance/binance-spot-api-docs?tab=readme-ov-file
This repository follows my best practices and Tiger Style (except "proper capitalization for acronyms": (VsrState, not VSRState) and formatting).
License
Licensed under Blue Oak 1.0.0Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.
Dependencies
~7–19MB
~251K SLoC