binance-rs-async
Unofficial Rust Library for the Binance API
This is a fully async api using tokio.
Current state
The current beta aims at implementing every single endpoint on the binance docs. Currently, futures and savings have been implemented but not thoroughly tested.
Usage
Add this to your Cargo.toml
[dependencies]
binance-rs-async = "1.3.2"
Roadmap
- 1.0.0 Completely tested margin sapi endpoints
- 1.0.* Changelog check to detect binance API changes
- 1.1.* Wallet API
- 1.2.* to 1.3.* Continuous updates for wallet and margin APIs
- 1.4.* Complete tested futures (m-coin and usd-m futures)
Breaking changes
- 1.3.0 introduces optional fields for MarginOrderCancellationResult instead of definitely set fields
Risk Warning
It is a personal project, use at your own risk. I will not be responsible for your investment losses. Cryptocurrency investment is subject to high market risk. Nonetheless, this crate is aimed at high performance and production use, I have been using this to target Binance successfully for several years now.
Using TLS
By default, the crate uses native-tls
for tungstenite and reqwest because I believe it's simpler and faster to let the
user switch LibreSSL or OpenSSL versions rather than rebuild the program.
You can however disable default-features and use rust-tls
, which might be helpful in certain situations such as CI or
dev box.
Rust >= 1.37
rustup install stable
Cargo dependencies
cargo install cargo-semver-checks
Checking documentation and release
cargo semver-checks check-release --package binance-rs-async --verbose
Contribution
Simply create a pull request. Properly documented code and tests (using binance testnet) are a must.
Running github actions locally :
# Example that runs the make-release-pr workflow
act -P ubuntu-latest=cimg/rust:1.66.1-node workflow_dispatch -j make-release-pr --eventpath release.json --secret-file=secrets