1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// -------------------------------------------------------------------------------------------------
// Copyright (C) 2015-2026 Nautech Systems Pty Ltd. All rights reserved.
// https://nautechsystems.io
//
// Licensed under the GNU Lesser General Public License Version 3.0 (the "License");
// You may not use this file except in compliance with the License.
// You may obtain a copy of the License at https://www.gnu.org/licenses/lgpl-3.0.en.html
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// -------------------------------------------------------------------------------------------------
//! Binance Spot WebSocket API client with SBE (Simple Binary Encoding) support.
//!
//! This module provides a WebSocket API client for Binance Spot trading using
//! the request/response pattern with SBE-encoded responses. It complements the
//! HTTP client by offering lower-latency order submission via WebSocket.
//!
//! ## Architecture
//!
//! The client uses a two-tier architecture per the adapter design guidelines:
//!
//! - **Outer client** (`BinanceSpotWsTradingClient`): Orchestrates connection lifecycle,
//! maintains state for Python access, sends commands via channel.
//! - **Inner handler** (`BinanceSpotWsTradingHandler`): Runs in dedicated Tokio task,
//! owns WebSocket connection, processes commands and responses.
//!
//! ## Features
//!
//! - Order placement, cancellation, and modification via WebSocket
//! - SBE-encoded responses for consistency with HTTP client
//! - Ed25519 and HMAC authentication (auto-detected)
//! - Request/response correlation by ID
//! - Inline user data stream (`session.logon` + `userDataStream.subscribe`)
pub use BinanceSpotWsTradingClient;
pub use ;
pub use BinanceSpotWsTradingHandler;
pub use ;