Cargo.toml 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. [package]
  2. name = "pin_trading_tool"
  3. version = "0.1.0"
  4. edition = "2021"
  5. # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
  6. [dependencies]
  7. # 异步运行时,选择 tokio,并启用完整特性集(包含多线程运行时、net, time, fs, process, signal 等)
  8. # "full" 特性非常方便开发,生产环境可以根据实际需求裁剪
  9. tokio = { version = "1", features = ["full"] }
  10. # HTTP 客户端,用于 REST API 请求(获取交易对、下单等)
  11. # - "json": 启用 JSON 支持,方便发送和接收 JSON 数据
  12. # - "tokio-native-tls": 与 tokio 集成,支持 HTTPS (SSL/TLS),使用系统的 TLS 实现
  13. reqwest = { version = "0.11", features = ["json", "tokio-native-tls"] }
  14. ring = "0.16.20"
  15. base64 = "0.13"
  16. futures-channel = "0.3.28"
  17. # 解压缩
  18. flate2 = "1.0"
  19. # WebSocket 客户端,基于 tokio 构建,用于订阅 K 线和深度
  20. tokio-tungstenite= { git = "https://github.com/HonestHouLiang/tokio-tungstenite.git",rev = "208fc9b09bcc2e2c8cb52e1cde5087446464fc91" }
  21. # futures 工具库,提供一些异步编程中常用的 trait 和工具
  22. # 包含了 Stream 的一些方法,例如 split 用于分离 WebSocket stream 的读写端
  23. futures-util = "0.3"
  24. # URL 解析和构建库,在处理交易所端点或配置代理时可能会用到
  25. url = "2"
  26. # 序列化和反序列化框架,用于将 Rust 结构体与各种数据格式相互转换
  27. # - "derive": 启用 derive 宏,方便自动实现 Serialize 和 Deserialize trait
  28. serde = { version = "1", features = ["derive"] }
  29. # serde 的 JSON 实现,用于处理交易所 API 的 JSON 数据和应用配置(如果使用 JSON 格式)
  30. serde_json = "1"
  31. # 日志和诊断框架,推荐使用 tracing,功能强大且适合异步应用
  32. tracing = "0.1"
  33. # tracing 的 subscriber 实现,用于配置日志输出格式、目的地等
  34. # - "env-filter": 允许通过 RUST_LOG 环境变量控制日志级别
  35. # - "fmt": 提供格式化输出到控制台
  36. # - "json": 可选,如果需要结构化 JSON 日志
  37. tracing-subscriber = { version = "0.3", features = ["json", "fmt", "env-filter", "registry", "time"] }
  38. # 用于日志文件按日期滚动
  39. tracing-appender = "0.2"
  40. # 日期和时间处理
  41. chrono = "0.4"
  42. # 时区数据库,用于获取 Asia/Shanghai 时区
  43. chrono-tz = "0.8"
  44. # 确保 time crate 的特性被启用
  45. time = { version = "0.3", features = ["macros", "formatting", "parsing", "local-offset"] }
  46. # 简化错误处理的库,方便快速构建可链式调用的错误
  47. anyhow = "1"
  48. # 用于定义自定义错误类型的库,与 anyhow 配合使用,让错误更具语义
  49. thiserror = "1"
  50. # 异步 SQL 数据库客户端,选择支持 tokio 和 SQLite 的版本,用于存储配置等
  51. # - "runtime-tokio": 使用 tokio 作为异步运行时
  52. # - "sqlite": 启用 SQLite 驱动
  53. # - "macros": 启用宏支持,用于 compile-time query checking (强烈推荐)
  54. # - "offline": 用于离线模式下的宏检查 (与 "macros" 配合使用)
  55. sqlx = { version = "0.7", features = ["runtime-tokio", "sqlite", "macros"] }
  56. backtrace = "0.3.74"
  57. prost = "0.11"
  58. hex = "0.4.3"
  59. # =======================================================
  60. # 以下是一些在开发过程中可能会用到的devDependencies,只用于开发和测试,不包含在最终发布版本中
  61. [dev-dependencies]
  62. [build-dependencies]
  63. prost-build = "0.11" # 或者最新版本