Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/igosuki/binance-rs-async

Async client for the Binance APIs
https://github.com/igosuki/binance-rs-async

async binance binance-api binance-exchange binance-futures cryptocurrency cryptocurrency-exchanges rust trading

Last synced: 3 days ago
JSON representation

Async client for the Binance APIs

Awesome Lists containing this project

README

        

# binance-rs-async

Unofficial Rust Library for the [Binance API](https://github.com/binance-exchange/binance-official-api-docs)

This is a fully async api using [tokio](https://tokio.rs/).

## 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

```toml
[dependencies]
binance-rs-async = "1.3.3"
```

## 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

```shell
rustup install stable
```

## Cargo dependencies

```shell
cargo install cargo-semver-checks
```

## Checking documentation and release

```shell
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 :

```shell
# 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
```