6 个版本
0.1.5 | 2024 年 4 月 28 日 |
---|---|
0.1.4 | 2024 年 4 月 19 日 |
0.1.3 | 2024 年 2 月 3 日 |
0.1.2 | 2024 年 1 月 2 日 |
#702 在 解析器实现 中
每月 30 次下载
160KB
4K SLoC
SFox.com API 的 Web 客户端
描述
sfox
为 SFox.com API 的 HTTP 调用提供了类型化的异步封装,同时也为 WebSocket 消息反序列化提供了 Serde 类型。
未实现 FIX。
安装
完成本节中的步骤,使 sfox
客户端在您的 Rust 应用程序中可用。
环境
在您的环境中设置 SFOX_AUTH_TOKEN
(在 SFox 网络控制台创建)
SFOX_AUTH_TOKEN=<AUTH-TOKEN>
注意:服务器 URL SFOX_HTTP_SERVER_URL
和 SFOX_WS_SERVER_URL
也可覆盖以进行测试和开发。
依赖
在您的项目的 Cargo.toml
中 [dependencies]
下添加以下行
sfox = "0.1.5"
用法
sfox::http
模块对 SFox API 执行异步调用,并返回类型化响应。
HTTP
use sfox::http::{self, v1::order_book::OrderBook};
let sfox = http::new().unwrap();
let order_book: OrderBook = sfox.order_book("btcusd").await.unwrap();
println!("Order book currency: {:?}", order_book.bids[0]);
终端应打印出如下响应
Order book currency: OpenOrder { price: 35000.012, volume: 1.0, exchange: "some-exchange" }
WebSocket
WebSocket 客户端的用法包括实例化客户端、与服务器进行身份验证以及订阅/取消订阅数据流。
use sfox::websocket::Client;
let sfox_ws = Client::new().await?;
let (mut write, mut read) = sfox_ws.stream.split();
// Start a task to read messages from the SFox stream
let _sfox_handle = tokio::spawn(async move { handle_incoming_message(&mut read).await });
// Subscribe to a feed on the websocket server
let _ticker_subscription = Client::subscribe(&mut write, Feed::Ticker, vec!["btcusd".to_string()]).await;
// Authenticate to access private feeds
let _authentication_attempt = Client::authenticate(&mut write).await;
// Subscribe to a private feed
let _balance_subscription = Client::subscribe(&mut write, Feed::Balances, vec![]).await;
其中 handle_incoming_message
可以这样实现
async fn handle_incoming_message(read: &mut SplitStream<WssStream> ) {
while let Some(message) = read.next().await {
println!("Received message: {:?}", message);
}
}
最小支持的 Rust 版本 (MSRV)
当前的 MSRV 是 1.69。这个版本可能在未来的小版本中更改,所以如果需要特定的 Rust 版本,请使用受限版本要求。
贡献
贡献使开源社区成为一个如此美妙的学习、灵感和创造的地方。您所做的任何贡献都将受到极大的赞赏。
如果您有改进此项目的建议,请 fork 仓库并创建一个 pull request。您也可以简单地通过带有“enhancement”标签的问题来提出。别忘了给项目加星!谢谢!
- fork 项目
- 创建您的功能分支
git checkout -b feature/AmazingFeature
- 提交您的更改
git commit -m '添加一些惊人的功能'
- 推送到分支
git push origin feature/AmazingFeature
- 打开拉取请求
许可证
根据MIT许可证分发。有关更多信息,请参阅LICENSE.txt
。
依赖关系
~8-22MB
~359K SLoC