Cargo.toml 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. [package]
  2. name = "rdma-engine"
  3. version = "0.1.0"
  4. edition = "2021"
  5. authors = ["SeaweedFS Team <dev@seaweedfs.com>"]
  6. description = "High-performance RDMA engine for SeaweedFS sidecar"
  7. license = "Apache-2.0"
  8. [[bin]]
  9. name = "rdma-engine-server"
  10. path = "src/main.rs"
  11. [lib]
  12. name = "rdma_engine"
  13. path = "src/lib.rs"
  14. [dependencies]
  15. # UCX (Unified Communication X) for high-performance networking
  16. # Much better than direct libibverbs - provides unified API across transports
  17. libc = "0.2"
  18. libloading = "0.8" # Dynamic loading of UCX libraries
  19. # Async runtime and networking
  20. tokio = { version = "1.0", features = ["full"] }
  21. tokio-util = "0.7"
  22. # Serialization for IPC
  23. serde = { version = "1.0", features = ["derive"] }
  24. bincode = "1.3"
  25. rmp-serde = "1.1" # MessagePack for efficient IPC
  26. # Error handling and logging
  27. anyhow = "1.0"
  28. thiserror = "1.0"
  29. tracing = "0.1"
  30. tracing-subscriber = { version = "0.3", features = ["env-filter"] }
  31. # UUID and time handling
  32. uuid = { version = "1.0", features = ["v4", "serde"] }
  33. chrono = { version = "0.4", features = ["serde"] }
  34. # Memory management and utilities
  35. memmap2 = "0.9"
  36. bytes = "1.0"
  37. parking_lot = "0.12" # Fast mutexes
  38. # IPC and networking
  39. nix = { version = "0.27", features = ["mman"] } # Unix domain sockets and system calls
  40. async-trait = "0.1" # Async traits
  41. # Configuration
  42. clap = { version = "4.0", features = ["derive"] }
  43. config = "0.13"
  44. [dev-dependencies]
  45. proptest = "1.0"
  46. criterion = "0.5"
  47. tempfile = "3.0"
  48. [features]
  49. default = ["mock-ucx"]
  50. mock-ucx = []
  51. real-ucx = [] # UCX integration for production RDMA
  52. [profile.release]
  53. opt-level = 3
  54. lto = true
  55. codegen-units = 1
  56. panic = "abort"
  57. [package.metadata.docs.rs]
  58. features = ["real-rdma"]