Cargo.toml 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. [package]
  2. name = "cdk"
  3. version.workspace = true
  4. edition.workspace = true
  5. authors = ["CDK Developers"]
  6. description = "Core Cashu Development Kit library implementing the Cashu protocol"
  7. homepage = "https://github.com/cashubtc/cdk"
  8. repository = "https://github.com/cashubtc/cdk.git"
  9. rust-version.workspace = true # MSRV
  10. license.workspace = true
  11. [features]
  12. default = ["mint", "wallet", "nostr", "bip353"]
  13. wallet = ["dep:futures", "cdk-common/wallet", "cdk-common/http", "dep:rustls"]
  14. nostr = ["wallet", "dep:nostr-sdk", "cdk-common/nostr"]
  15. npubcash = ["wallet", "nostr", "dep:cdk-npubcash"]
  16. mint = ["dep:futures", "cdk-common/mint", "cdk-common/http", "cdk-signatory"]
  17. bip353 = ["dep:hickory-resolver"]
  18. # We do not commit to a MSRV with swagger enabled
  19. swagger = ["mint", "dep:utoipa", "cdk-common/swagger"]
  20. bench = []
  21. http_subscription = []
  22. tor = [
  23. "wallet",
  24. "dep:arti-client",
  25. "dep:arti-hyper",
  26. "dep:hyper",
  27. "dep:http",
  28. "dep:rustls",
  29. "dep:tor-rtcompat",
  30. "dep:tls-api",
  31. "dep:tls-api-native-tls",
  32. ]
  33. prometheus = ["dep:cdk-prometheus"]
  34. [dependencies]
  35. arc-swap = "1.7.1"
  36. cdk-common.workspace = true
  37. cbor-diag.workspace = true
  38. async-trait.workspace = true
  39. anyhow.workspace = true
  40. bitcoin.workspace = true
  41. ciborium.workspace = true
  42. lightning.workspace = true
  43. lightning-invoice.workspace = true
  44. regex.workspace = true
  45. serde.workspace = true
  46. serde_json.workspace = true
  47. serde_with.workspace = true
  48. tracing.workspace = true
  49. thiserror.workspace = true
  50. futures = { workspace = true, optional = true, features = ["alloc"] }
  51. url.workspace = true
  52. utoipa = { workspace = true, optional = true }
  53. uuid.workspace = true
  54. jsonwebtoken.workspace = true
  55. nostr-sdk = { workspace = true, optional = true }
  56. cdk-npubcash = { workspace = true, optional = true }
  57. cdk-prometheus = {workspace = true, optional = true}
  58. web-time.workspace = true
  59. zeroize = "1"
  60. tokio-util.workspace = true
  61. [target.'cfg(not(target_arch = "wasm32"))'.dependencies]
  62. cdk-http-client = { workspace = true, features = ["bitreq"] }
  63. hickory-resolver = { version = "0.25.2", optional = true, features = ["dnssec-ring"] }
  64. tokio = { workspace = true, features = [
  65. "rt-multi-thread",
  66. "time",
  67. "macros",
  68. "sync",
  69. ] }
  70. getrandom = { version = "0.2" }
  71. cdk-signatory = { workspace = true, features = ["grpc"], optional = true }
  72. tokio-tungstenite = { workspace = true, features = [
  73. "rustls",
  74. "rustls-tls-native-roots",
  75. "connect"
  76. ] }
  77. # Tor dependencies (optional; enabled by feature "tor")
  78. hyper = { version = "0.14", optional = true, features = ["client", "http1", "http2"] }
  79. http = { version = "0.2", optional = true }
  80. arti-client = { version = "0.19.0", optional = true, default-features = false, features = ["tokio", "rustls"] }
  81. arti-hyper = { version = "0.19.0", optional = true }
  82. rustls = { workspace = true, optional = true }
  83. tor-rtcompat = { version = "0.19.0", optional = true, features = ["tokio", "rustls"] }
  84. tls-api = { version = "0.9", optional = true }
  85. tls-api-native-tls = { version = "0.9", optional = true }
  86. [target.'cfg(target_arch = "wasm32")'.dependencies]
  87. cdk-http-client = { workspace = true, default-features = false, features = ["reqwest"] }
  88. tokio = { workspace = true, default-features = false, features = ["rt", "macros", "sync", "time"] }
  89. cdk-signatory = { workspace = true, default-features = false }
  90. getrandom = { version = "0.2", features = ["js"] }
  91. ring = { version = "0.17.14", features = ["wasm32_unknown_unknown_js"] }
  92. rustls = { workspace = true, optional = true }
  93. uuid = { workspace = true, features = ["js"] }
  94. gloo-timers = { version = "0.3", features = ["futures"] }
  95. [[example]]
  96. name = "mint-token"
  97. required-features = ["wallet"]
  98. [[example]]
  99. name = "melt-token"
  100. required-features = ["wallet"]
  101. [[example]]
  102. name = "p2pk"
  103. required-features = ["wallet"]
  104. [[example]]
  105. name = "wallet"
  106. required-features = ["wallet"]
  107. [[example]]
  108. name = "proof-selection"
  109. required-features = ["wallet"]
  110. [[example]]
  111. name = "auth_wallet"
  112. required-features = ["wallet"]
  113. [[example]]
  114. name = "bip353"
  115. required-features = ["wallet", "bip353"]
  116. [[example]]
  117. name = "mint-token-bolt12-with-stream"
  118. required-features = ["wallet"]
  119. [[example]]
  120. name = "mint-token-bolt12-with-custom-http"
  121. required-features = ["wallet"]
  122. [[example]]
  123. name = "mint-token-bolt12"
  124. required-features = ["wallet"]
  125. [[example]]
  126. name = "human_readable_payment"
  127. required-features = ["wallet", "bip353"]
  128. [[example]]
  129. name = "payment_request"
  130. required-features = ["wallet", "nostr"]
  131. [[example]]
  132. name = "nostr_backup"
  133. required-features = ["wallet", "nostr"]
  134. [[example]]
  135. name = "token-proofs"
  136. required-features = ["wallet"]
  137. [[example]]
  138. name = "npubcash"
  139. required-features = ["npubcash"]
  140. [[example]]
  141. name = "multimint-npubcash"
  142. required-features = ["npubcash"]
  143. [[example]]
  144. name = "configure_wallet"
  145. required-features = ["wallet"]
  146. [[example]]
  147. name = "receive-token"
  148. required-features = ["wallet"]
  149. [[example]]
  150. name = "multi-mint-wallet"
  151. required-features = ["wallet"]
  152. [[example]]
  153. name = "restore-wallet"
  154. required-features = ["wallet"]
  155. [[example]]
  156. name = "revoke_send"
  157. required-features = ["wallet"]
  158. [dev-dependencies]
  159. rand.workspace = true
  160. cdk-sqlite.workspace = true
  161. cdk-fake-wallet.workspace = true
  162. bip39.workspace = true
  163. tracing-subscriber.workspace = true
  164. criterion.workspace = true
  165. anyhow.workspace = true
  166. ureq = { version = "3.1.0", features = ["json"] }
  167. tokio = { workspace = true, features = ["full"] }
  168. [[bench]]
  169. name = "dhke_benchmarks"
  170. harness = false
  171. [lints]
  172. workspace = true