├── .gitignore ├── .gitmodules ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── examples └── streaming │ ├── .gitignore │ ├── Cargo.lock │ ├── Cargo.toml │ └── src │ └── main.rs ├── generator ├── .gitignore ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── src ├── google.api.rs ├── google.protobuf.rs ├── lib.rs └── tcs.rs └── tests └── go.rs /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "investAPI"] 2 | path = investAPI 3 | url = https://github.com/RussianInvestments/investAPI.git 4 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "adler" 7 | version = "1.0.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 10 | 11 | [[package]] 12 | name = "anyhow" 13 | version = "1.0.66" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" 16 | 17 | [[package]] 18 | name = "async-stream" 19 | version = "0.3.3" 20 | source = "registry+https://github.com/rust-lang/crates.io-index" 21 | checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" 22 | dependencies = [ 23 | "async-stream-impl", 24 | "futures-core", 25 | ] 26 | 27 | [[package]] 28 | name = "async-stream-impl" 29 | version = "0.3.3" 30 | source = "registry+https://github.com/rust-lang/crates.io-index" 31 | checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" 32 | dependencies = [ 33 | "proc-macro2", 34 | "quote", 35 | "syn 1.0.103", 36 | ] 37 | 38 | [[package]] 39 | name = "async-trait" 40 | version = "0.1.80" 41 | source = "registry+https://github.com/rust-lang/crates.io-index" 42 | checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" 43 | dependencies = [ 44 | "proc-macro2", 45 | "quote", 46 | "syn 2.0.66", 47 | ] 48 | 49 | [[package]] 50 | name = "autocfg" 51 | version = "1.1.0" 52 | source = "registry+https://github.com/rust-lang/crates.io-index" 53 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 54 | 55 | [[package]] 56 | name = "axum" 57 | version = "0.6.20" 58 | source = "registry+https://github.com/rust-lang/crates.io-index" 59 | checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" 60 | dependencies = [ 61 | "async-trait", 62 | "axum-core", 63 | "bitflags", 64 | "bytes", 65 | "futures-util", 66 | "http", 67 | "http-body", 68 | "hyper", 69 | "itoa", 70 | "matchit", 71 | "memchr", 72 | "mime", 73 | "percent-encoding", 74 | "pin-project-lite", 75 | "rustversion", 76 | "serde", 77 | "sync_wrapper", 78 | "tower", 79 | "tower-layer", 80 | "tower-service", 81 | ] 82 | 83 | [[package]] 84 | name = "axum-core" 85 | version = "0.3.4" 86 | source = "registry+https://github.com/rust-lang/crates.io-index" 87 | checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" 88 | dependencies = [ 89 | "async-trait", 90 | "bytes", 91 | "futures-util", 92 | "http", 93 | "http-body", 94 | "mime", 95 | "rustversion", 96 | "tower-layer", 97 | "tower-service", 98 | ] 99 | 100 | [[package]] 101 | name = "base64" 102 | version = "0.21.7" 103 | source = "registry+https://github.com/rust-lang/crates.io-index" 104 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 105 | 106 | [[package]] 107 | name = "base64" 108 | version = "0.22.1" 109 | source = "registry+https://github.com/rust-lang/crates.io-index" 110 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 111 | 112 | [[package]] 113 | name = "bitflags" 114 | version = "1.3.2" 115 | source = "registry+https://github.com/rust-lang/crates.io-index" 116 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 117 | 118 | [[package]] 119 | name = "bytes" 120 | version = "1.2.1" 121 | source = "registry+https://github.com/rust-lang/crates.io-index" 122 | checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" 123 | 124 | [[package]] 125 | name = "cc" 126 | version = "1.0.98" 127 | source = "registry+https://github.com/rust-lang/crates.io-index" 128 | checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" 129 | 130 | [[package]] 131 | name = "cfg-if" 132 | version = "1.0.0" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 135 | 136 | [[package]] 137 | name = "core-foundation" 138 | version = "0.9.3" 139 | source = "registry+https://github.com/rust-lang/crates.io-index" 140 | checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" 141 | dependencies = [ 142 | "core-foundation-sys", 143 | "libc", 144 | ] 145 | 146 | [[package]] 147 | name = "core-foundation-sys" 148 | version = "0.8.3" 149 | source = "registry+https://github.com/rust-lang/crates.io-index" 150 | checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" 151 | 152 | [[package]] 153 | name = "crc32fast" 154 | version = "1.3.2" 155 | source = "registry+https://github.com/rust-lang/crates.io-index" 156 | checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 157 | dependencies = [ 158 | "cfg-if", 159 | ] 160 | 161 | [[package]] 162 | name = "either" 163 | version = "1.8.0" 164 | source = "registry+https://github.com/rust-lang/crates.io-index" 165 | checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" 166 | 167 | [[package]] 168 | name = "equivalent" 169 | version = "1.0.1" 170 | source = "registry+https://github.com/rust-lang/crates.io-index" 171 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 172 | 173 | [[package]] 174 | name = "flate2" 175 | version = "1.0.24" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" 178 | dependencies = [ 179 | "crc32fast", 180 | "miniz_oxide", 181 | ] 182 | 183 | [[package]] 184 | name = "fnv" 185 | version = "1.0.7" 186 | source = "registry+https://github.com/rust-lang/crates.io-index" 187 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 188 | 189 | [[package]] 190 | name = "futures" 191 | version = "0.3.25" 192 | source = "registry+https://github.com/rust-lang/crates.io-index" 193 | checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" 194 | dependencies = [ 195 | "futures-channel", 196 | "futures-core", 197 | "futures-io", 198 | "futures-sink", 199 | "futures-task", 200 | "futures-util", 201 | ] 202 | 203 | [[package]] 204 | name = "futures-channel" 205 | version = "0.3.25" 206 | source = "registry+https://github.com/rust-lang/crates.io-index" 207 | checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" 208 | dependencies = [ 209 | "futures-core", 210 | "futures-sink", 211 | ] 212 | 213 | [[package]] 214 | name = "futures-core" 215 | version = "0.3.25" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" 218 | 219 | [[package]] 220 | name = "futures-io" 221 | version = "0.3.25" 222 | source = "registry+https://github.com/rust-lang/crates.io-index" 223 | checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" 224 | 225 | [[package]] 226 | name = "futures-macro" 227 | version = "0.3.25" 228 | source = "registry+https://github.com/rust-lang/crates.io-index" 229 | checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" 230 | dependencies = [ 231 | "proc-macro2", 232 | "quote", 233 | "syn 1.0.103", 234 | ] 235 | 236 | [[package]] 237 | name = "futures-sink" 238 | version = "0.3.25" 239 | source = "registry+https://github.com/rust-lang/crates.io-index" 240 | checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" 241 | 242 | [[package]] 243 | name = "futures-task" 244 | version = "0.3.25" 245 | source = "registry+https://github.com/rust-lang/crates.io-index" 246 | checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" 247 | 248 | [[package]] 249 | name = "futures-util" 250 | version = "0.3.25" 251 | source = "registry+https://github.com/rust-lang/crates.io-index" 252 | checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" 253 | dependencies = [ 254 | "futures-core", 255 | "futures-macro", 256 | "futures-sink", 257 | "futures-task", 258 | "pin-project-lite", 259 | "pin-utils", 260 | "slab", 261 | ] 262 | 263 | [[package]] 264 | name = "getrandom" 265 | version = "0.2.15" 266 | source = "registry+https://github.com/rust-lang/crates.io-index" 267 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 268 | dependencies = [ 269 | "cfg-if", 270 | "libc", 271 | "wasi", 272 | ] 273 | 274 | [[package]] 275 | name = "h2" 276 | version = "0.3.26" 277 | source = "registry+https://github.com/rust-lang/crates.io-index" 278 | checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" 279 | dependencies = [ 280 | "bytes", 281 | "fnv", 282 | "futures-core", 283 | "futures-sink", 284 | "futures-util", 285 | "http", 286 | "indexmap 2.2.6", 287 | "slab", 288 | "tokio", 289 | "tokio-util", 290 | "tracing", 291 | ] 292 | 293 | [[package]] 294 | name = "hashbrown" 295 | version = "0.12.3" 296 | source = "registry+https://github.com/rust-lang/crates.io-index" 297 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 298 | 299 | [[package]] 300 | name = "hashbrown" 301 | version = "0.14.5" 302 | source = "registry+https://github.com/rust-lang/crates.io-index" 303 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 304 | 305 | [[package]] 306 | name = "hermit-abi" 307 | version = "0.1.19" 308 | source = "registry+https://github.com/rust-lang/crates.io-index" 309 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 310 | dependencies = [ 311 | "libc", 312 | ] 313 | 314 | [[package]] 315 | name = "http" 316 | version = "0.2.12" 317 | source = "registry+https://github.com/rust-lang/crates.io-index" 318 | checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" 319 | dependencies = [ 320 | "bytes", 321 | "fnv", 322 | "itoa", 323 | ] 324 | 325 | [[package]] 326 | name = "http-body" 327 | version = "0.4.5" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 330 | dependencies = [ 331 | "bytes", 332 | "http", 333 | "pin-project-lite", 334 | ] 335 | 336 | [[package]] 337 | name = "httparse" 338 | version = "1.8.0" 339 | source = "registry+https://github.com/rust-lang/crates.io-index" 340 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 341 | 342 | [[package]] 343 | name = "httpdate" 344 | version = "1.0.2" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 347 | 348 | [[package]] 349 | name = "hyper" 350 | version = "0.14.29" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" 353 | dependencies = [ 354 | "bytes", 355 | "futures-channel", 356 | "futures-core", 357 | "futures-util", 358 | "h2", 359 | "http", 360 | "http-body", 361 | "httparse", 362 | "httpdate", 363 | "itoa", 364 | "pin-project-lite", 365 | "socket2", 366 | "tokio", 367 | "tower-service", 368 | "tracing", 369 | "want", 370 | ] 371 | 372 | [[package]] 373 | name = "hyper-timeout" 374 | version = "0.4.1" 375 | source = "registry+https://github.com/rust-lang/crates.io-index" 376 | checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" 377 | dependencies = [ 378 | "hyper", 379 | "pin-project-lite", 380 | "tokio", 381 | "tokio-io-timeout", 382 | ] 383 | 384 | [[package]] 385 | name = "indexmap" 386 | version = "1.9.1" 387 | source = "registry+https://github.com/rust-lang/crates.io-index" 388 | checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" 389 | dependencies = [ 390 | "autocfg", 391 | "hashbrown 0.12.3", 392 | ] 393 | 394 | [[package]] 395 | name = "indexmap" 396 | version = "2.2.6" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" 399 | dependencies = [ 400 | "equivalent", 401 | "hashbrown 0.14.5", 402 | ] 403 | 404 | [[package]] 405 | name = "itertools" 406 | version = "0.10.5" 407 | source = "registry+https://github.com/rust-lang/crates.io-index" 408 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 409 | dependencies = [ 410 | "either", 411 | ] 412 | 413 | [[package]] 414 | name = "itoa" 415 | version = "1.0.11" 416 | source = "registry+https://github.com/rust-lang/crates.io-index" 417 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 418 | 419 | [[package]] 420 | name = "lazy_static" 421 | version = "1.4.0" 422 | source = "registry+https://github.com/rust-lang/crates.io-index" 423 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 424 | 425 | [[package]] 426 | name = "libc" 427 | version = "0.2.155" 428 | source = "registry+https://github.com/rust-lang/crates.io-index" 429 | checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" 430 | 431 | [[package]] 432 | name = "log" 433 | version = "0.4.17" 434 | source = "registry+https://github.com/rust-lang/crates.io-index" 435 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 436 | dependencies = [ 437 | "cfg-if", 438 | ] 439 | 440 | [[package]] 441 | name = "matchit" 442 | version = "0.7.3" 443 | source = "registry+https://github.com/rust-lang/crates.io-index" 444 | checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" 445 | 446 | [[package]] 447 | name = "memchr" 448 | version = "2.5.0" 449 | source = "registry+https://github.com/rust-lang/crates.io-index" 450 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 451 | 452 | [[package]] 453 | name = "mime" 454 | version = "0.3.16" 455 | source = "registry+https://github.com/rust-lang/crates.io-index" 456 | checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" 457 | 458 | [[package]] 459 | name = "miniz_oxide" 460 | version = "0.5.4" 461 | source = "registry+https://github.com/rust-lang/crates.io-index" 462 | checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" 463 | dependencies = [ 464 | "adler", 465 | ] 466 | 467 | [[package]] 468 | name = "mio" 469 | version = "0.8.5" 470 | source = "registry+https://github.com/rust-lang/crates.io-index" 471 | checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" 472 | dependencies = [ 473 | "libc", 474 | "log", 475 | "wasi", 476 | "windows-sys 0.42.0", 477 | ] 478 | 479 | [[package]] 480 | name = "num_cpus" 481 | version = "1.14.0" 482 | source = "registry+https://github.com/rust-lang/crates.io-index" 483 | checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" 484 | dependencies = [ 485 | "hermit-abi", 486 | "libc", 487 | ] 488 | 489 | [[package]] 490 | name = "once_cell" 491 | version = "1.16.0" 492 | source = "registry+https://github.com/rust-lang/crates.io-index" 493 | checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" 494 | 495 | [[package]] 496 | name = "openssl-probe" 497 | version = "0.1.5" 498 | source = "registry+https://github.com/rust-lang/crates.io-index" 499 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 500 | 501 | [[package]] 502 | name = "percent-encoding" 503 | version = "2.2.0" 504 | source = "registry+https://github.com/rust-lang/crates.io-index" 505 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 506 | 507 | [[package]] 508 | name = "pin-project" 509 | version = "1.0.12" 510 | source = "registry+https://github.com/rust-lang/crates.io-index" 511 | checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" 512 | dependencies = [ 513 | "pin-project-internal", 514 | ] 515 | 516 | [[package]] 517 | name = "pin-project-internal" 518 | version = "1.0.12" 519 | source = "registry+https://github.com/rust-lang/crates.io-index" 520 | checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" 521 | dependencies = [ 522 | "proc-macro2", 523 | "quote", 524 | "syn 1.0.103", 525 | ] 526 | 527 | [[package]] 528 | name = "pin-project-lite" 529 | version = "0.2.9" 530 | source = "registry+https://github.com/rust-lang/crates.io-index" 531 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 532 | 533 | [[package]] 534 | name = "pin-utils" 535 | version = "0.1.0" 536 | source = "registry+https://github.com/rust-lang/crates.io-index" 537 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 538 | 539 | [[package]] 540 | name = "ppv-lite86" 541 | version = "0.2.17" 542 | source = "registry+https://github.com/rust-lang/crates.io-index" 543 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 544 | 545 | [[package]] 546 | name = "proc-macro2" 547 | version = "1.0.85" 548 | source = "registry+https://github.com/rust-lang/crates.io-index" 549 | checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" 550 | dependencies = [ 551 | "unicode-ident", 552 | ] 553 | 554 | [[package]] 555 | name = "prost" 556 | version = "0.12.6" 557 | source = "registry+https://github.com/rust-lang/crates.io-index" 558 | checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" 559 | dependencies = [ 560 | "bytes", 561 | "prost-derive", 562 | ] 563 | 564 | [[package]] 565 | name = "prost-derive" 566 | version = "0.12.6" 567 | source = "registry+https://github.com/rust-lang/crates.io-index" 568 | checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" 569 | dependencies = [ 570 | "anyhow", 571 | "itertools", 572 | "proc-macro2", 573 | "quote", 574 | "syn 2.0.66", 575 | ] 576 | 577 | [[package]] 578 | name = "prost-types" 579 | version = "0.12.6" 580 | source = "registry+https://github.com/rust-lang/crates.io-index" 581 | checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" 582 | dependencies = [ 583 | "prost", 584 | ] 585 | 586 | [[package]] 587 | name = "quote" 588 | version = "1.0.36" 589 | source = "registry+https://github.com/rust-lang/crates.io-index" 590 | checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" 591 | dependencies = [ 592 | "proc-macro2", 593 | ] 594 | 595 | [[package]] 596 | name = "rand" 597 | version = "0.8.5" 598 | source = "registry+https://github.com/rust-lang/crates.io-index" 599 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 600 | dependencies = [ 601 | "libc", 602 | "rand_chacha", 603 | "rand_core", 604 | ] 605 | 606 | [[package]] 607 | name = "rand_chacha" 608 | version = "0.3.1" 609 | source = "registry+https://github.com/rust-lang/crates.io-index" 610 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 611 | dependencies = [ 612 | "ppv-lite86", 613 | "rand_core", 614 | ] 615 | 616 | [[package]] 617 | name = "rand_core" 618 | version = "0.6.4" 619 | source = "registry+https://github.com/rust-lang/crates.io-index" 620 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 621 | dependencies = [ 622 | "getrandom", 623 | ] 624 | 625 | [[package]] 626 | name = "ring" 627 | version = "0.17.8" 628 | source = "registry+https://github.com/rust-lang/crates.io-index" 629 | checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" 630 | dependencies = [ 631 | "cc", 632 | "cfg-if", 633 | "getrandom", 634 | "libc", 635 | "spin", 636 | "untrusted", 637 | "windows-sys 0.52.0", 638 | ] 639 | 640 | [[package]] 641 | name = "rustls" 642 | version = "0.22.4" 643 | source = "registry+https://github.com/rust-lang/crates.io-index" 644 | checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" 645 | dependencies = [ 646 | "log", 647 | "ring", 648 | "rustls-pki-types", 649 | "rustls-webpki", 650 | "subtle", 651 | "zeroize", 652 | ] 653 | 654 | [[package]] 655 | name = "rustls-native-certs" 656 | version = "0.7.0" 657 | source = "registry+https://github.com/rust-lang/crates.io-index" 658 | checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" 659 | dependencies = [ 660 | "openssl-probe", 661 | "rustls-pemfile", 662 | "rustls-pki-types", 663 | "schannel", 664 | "security-framework", 665 | ] 666 | 667 | [[package]] 668 | name = "rustls-pemfile" 669 | version = "2.1.2" 670 | source = "registry+https://github.com/rust-lang/crates.io-index" 671 | checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" 672 | dependencies = [ 673 | "base64 0.22.1", 674 | "rustls-pki-types", 675 | ] 676 | 677 | [[package]] 678 | name = "rustls-pki-types" 679 | version = "1.7.0" 680 | source = "registry+https://github.com/rust-lang/crates.io-index" 681 | checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" 682 | 683 | [[package]] 684 | name = "rustls-webpki" 685 | version = "0.102.4" 686 | source = "registry+https://github.com/rust-lang/crates.io-index" 687 | checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e" 688 | dependencies = [ 689 | "ring", 690 | "rustls-pki-types", 691 | "untrusted", 692 | ] 693 | 694 | [[package]] 695 | name = "rustversion" 696 | version = "1.0.17" 697 | source = "registry+https://github.com/rust-lang/crates.io-index" 698 | checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" 699 | 700 | [[package]] 701 | name = "schannel" 702 | version = "0.1.20" 703 | source = "registry+https://github.com/rust-lang/crates.io-index" 704 | checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" 705 | dependencies = [ 706 | "lazy_static", 707 | "windows-sys 0.36.1", 708 | ] 709 | 710 | [[package]] 711 | name = "security-framework" 712 | version = "2.7.0" 713 | source = "registry+https://github.com/rust-lang/crates.io-index" 714 | checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" 715 | dependencies = [ 716 | "bitflags", 717 | "core-foundation", 718 | "core-foundation-sys", 719 | "libc", 720 | "security-framework-sys", 721 | ] 722 | 723 | [[package]] 724 | name = "security-framework-sys" 725 | version = "2.6.1" 726 | source = "registry+https://github.com/rust-lang/crates.io-index" 727 | checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" 728 | dependencies = [ 729 | "core-foundation-sys", 730 | "libc", 731 | ] 732 | 733 | [[package]] 734 | name = "serde" 735 | version = "1.0.147" 736 | source = "registry+https://github.com/rust-lang/crates.io-index" 737 | checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" 738 | 739 | [[package]] 740 | name = "slab" 741 | version = "0.4.7" 742 | source = "registry+https://github.com/rust-lang/crates.io-index" 743 | checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" 744 | dependencies = [ 745 | "autocfg", 746 | ] 747 | 748 | [[package]] 749 | name = "socket2" 750 | version = "0.4.7" 751 | source = "registry+https://github.com/rust-lang/crates.io-index" 752 | checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" 753 | dependencies = [ 754 | "libc", 755 | "winapi", 756 | ] 757 | 758 | [[package]] 759 | name = "spin" 760 | version = "0.9.8" 761 | source = "registry+https://github.com/rust-lang/crates.io-index" 762 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 763 | 764 | [[package]] 765 | name = "subtle" 766 | version = "2.5.0" 767 | source = "registry+https://github.com/rust-lang/crates.io-index" 768 | checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" 769 | 770 | [[package]] 771 | name = "syn" 772 | version = "1.0.103" 773 | source = "registry+https://github.com/rust-lang/crates.io-index" 774 | checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" 775 | dependencies = [ 776 | "proc-macro2", 777 | "quote", 778 | "unicode-ident", 779 | ] 780 | 781 | [[package]] 782 | name = "syn" 783 | version = "2.0.66" 784 | source = "registry+https://github.com/rust-lang/crates.io-index" 785 | checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" 786 | dependencies = [ 787 | "proc-macro2", 788 | "quote", 789 | "unicode-ident", 790 | ] 791 | 792 | [[package]] 793 | name = "sync_wrapper" 794 | version = "0.1.1" 795 | source = "registry+https://github.com/rust-lang/crates.io-index" 796 | checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" 797 | 798 | [[package]] 799 | name = "tinkoff-invest-api" 800 | version = "0.3.0" 801 | dependencies = [ 802 | "async-stream", 803 | "futures", 804 | "futures-util", 805 | "prost", 806 | "prost-types", 807 | "tokio", 808 | "tokio-stream", 809 | "tonic", 810 | "uuid", 811 | ] 812 | 813 | [[package]] 814 | name = "tokio" 815 | version = "1.21.2" 816 | source = "registry+https://github.com/rust-lang/crates.io-index" 817 | checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" 818 | dependencies = [ 819 | "autocfg", 820 | "bytes", 821 | "libc", 822 | "memchr", 823 | "mio", 824 | "num_cpus", 825 | "pin-project-lite", 826 | "socket2", 827 | "tokio-macros", 828 | "winapi", 829 | ] 830 | 831 | [[package]] 832 | name = "tokio-io-timeout" 833 | version = "1.2.0" 834 | source = "registry+https://github.com/rust-lang/crates.io-index" 835 | checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" 836 | dependencies = [ 837 | "pin-project-lite", 838 | "tokio", 839 | ] 840 | 841 | [[package]] 842 | name = "tokio-macros" 843 | version = "1.8.0" 844 | source = "registry+https://github.com/rust-lang/crates.io-index" 845 | checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" 846 | dependencies = [ 847 | "proc-macro2", 848 | "quote", 849 | "syn 1.0.103", 850 | ] 851 | 852 | [[package]] 853 | name = "tokio-rustls" 854 | version = "0.25.0" 855 | source = "registry+https://github.com/rust-lang/crates.io-index" 856 | checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" 857 | dependencies = [ 858 | "rustls", 859 | "rustls-pki-types", 860 | "tokio", 861 | ] 862 | 863 | [[package]] 864 | name = "tokio-stream" 865 | version = "0.1.11" 866 | source = "registry+https://github.com/rust-lang/crates.io-index" 867 | checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" 868 | dependencies = [ 869 | "futures-core", 870 | "pin-project-lite", 871 | "tokio", 872 | ] 873 | 874 | [[package]] 875 | name = "tokio-util" 876 | version = "0.7.4" 877 | source = "registry+https://github.com/rust-lang/crates.io-index" 878 | checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" 879 | dependencies = [ 880 | "bytes", 881 | "futures-core", 882 | "futures-sink", 883 | "pin-project-lite", 884 | "tokio", 885 | "tracing", 886 | ] 887 | 888 | [[package]] 889 | name = "tonic" 890 | version = "0.11.0" 891 | source = "registry+https://github.com/rust-lang/crates.io-index" 892 | checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" 893 | dependencies = [ 894 | "async-stream", 895 | "async-trait", 896 | "axum", 897 | "base64 0.21.7", 898 | "bytes", 899 | "flate2", 900 | "h2", 901 | "http", 902 | "http-body", 903 | "hyper", 904 | "hyper-timeout", 905 | "percent-encoding", 906 | "pin-project", 907 | "prost", 908 | "rustls-native-certs", 909 | "rustls-pemfile", 910 | "rustls-pki-types", 911 | "tokio", 912 | "tokio-rustls", 913 | "tokio-stream", 914 | "tower", 915 | "tower-layer", 916 | "tower-service", 917 | "tracing", 918 | ] 919 | 920 | [[package]] 921 | name = "tower" 922 | version = "0.4.13" 923 | source = "registry+https://github.com/rust-lang/crates.io-index" 924 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 925 | dependencies = [ 926 | "futures-core", 927 | "futures-util", 928 | "indexmap 1.9.1", 929 | "pin-project", 930 | "pin-project-lite", 931 | "rand", 932 | "slab", 933 | "tokio", 934 | "tokio-util", 935 | "tower-layer", 936 | "tower-service", 937 | "tracing", 938 | ] 939 | 940 | [[package]] 941 | name = "tower-layer" 942 | version = "0.3.2" 943 | source = "registry+https://github.com/rust-lang/crates.io-index" 944 | checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" 945 | 946 | [[package]] 947 | name = "tower-service" 948 | version = "0.3.2" 949 | source = "registry+https://github.com/rust-lang/crates.io-index" 950 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 951 | 952 | [[package]] 953 | name = "tracing" 954 | version = "0.1.37" 955 | source = "registry+https://github.com/rust-lang/crates.io-index" 956 | checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" 957 | dependencies = [ 958 | "cfg-if", 959 | "pin-project-lite", 960 | "tracing-attributes", 961 | "tracing-core", 962 | ] 963 | 964 | [[package]] 965 | name = "tracing-attributes" 966 | version = "0.1.23" 967 | source = "registry+https://github.com/rust-lang/crates.io-index" 968 | checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" 969 | dependencies = [ 970 | "proc-macro2", 971 | "quote", 972 | "syn 1.0.103", 973 | ] 974 | 975 | [[package]] 976 | name = "tracing-core" 977 | version = "0.1.30" 978 | source = "registry+https://github.com/rust-lang/crates.io-index" 979 | checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" 980 | dependencies = [ 981 | "once_cell", 982 | ] 983 | 984 | [[package]] 985 | name = "try-lock" 986 | version = "0.2.3" 987 | source = "registry+https://github.com/rust-lang/crates.io-index" 988 | checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" 989 | 990 | [[package]] 991 | name = "unicode-ident" 992 | version = "1.0.5" 993 | source = "registry+https://github.com/rust-lang/crates.io-index" 994 | checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" 995 | 996 | [[package]] 997 | name = "untrusted" 998 | version = "0.9.0" 999 | source = "registry+https://github.com/rust-lang/crates.io-index" 1000 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 1001 | 1002 | [[package]] 1003 | name = "uuid" 1004 | version = "1.8.0" 1005 | source = "registry+https://github.com/rust-lang/crates.io-index" 1006 | checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" 1007 | dependencies = [ 1008 | "getrandom", 1009 | ] 1010 | 1011 | [[package]] 1012 | name = "want" 1013 | version = "0.3.0" 1014 | source = "registry+https://github.com/rust-lang/crates.io-index" 1015 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 1016 | dependencies = [ 1017 | "log", 1018 | "try-lock", 1019 | ] 1020 | 1021 | [[package]] 1022 | name = "wasi" 1023 | version = "0.11.0+wasi-snapshot-preview1" 1024 | source = "registry+https://github.com/rust-lang/crates.io-index" 1025 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1026 | 1027 | [[package]] 1028 | name = "winapi" 1029 | version = "0.3.9" 1030 | source = "registry+https://github.com/rust-lang/crates.io-index" 1031 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1032 | dependencies = [ 1033 | "winapi-i686-pc-windows-gnu", 1034 | "winapi-x86_64-pc-windows-gnu", 1035 | ] 1036 | 1037 | [[package]] 1038 | name = "winapi-i686-pc-windows-gnu" 1039 | version = "0.4.0" 1040 | source = "registry+https://github.com/rust-lang/crates.io-index" 1041 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1042 | 1043 | [[package]] 1044 | name = "winapi-x86_64-pc-windows-gnu" 1045 | version = "0.4.0" 1046 | source = "registry+https://github.com/rust-lang/crates.io-index" 1047 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1048 | 1049 | [[package]] 1050 | name = "windows-sys" 1051 | version = "0.36.1" 1052 | source = "registry+https://github.com/rust-lang/crates.io-index" 1053 | checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" 1054 | dependencies = [ 1055 | "windows_aarch64_msvc 0.36.1", 1056 | "windows_i686_gnu 0.36.1", 1057 | "windows_i686_msvc 0.36.1", 1058 | "windows_x86_64_gnu 0.36.1", 1059 | "windows_x86_64_msvc 0.36.1", 1060 | ] 1061 | 1062 | [[package]] 1063 | name = "windows-sys" 1064 | version = "0.42.0" 1065 | source = "registry+https://github.com/rust-lang/crates.io-index" 1066 | checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" 1067 | dependencies = [ 1068 | "windows_aarch64_gnullvm 0.42.0", 1069 | "windows_aarch64_msvc 0.42.0", 1070 | "windows_i686_gnu 0.42.0", 1071 | "windows_i686_msvc 0.42.0", 1072 | "windows_x86_64_gnu 0.42.0", 1073 | "windows_x86_64_gnullvm 0.42.0", 1074 | "windows_x86_64_msvc 0.42.0", 1075 | ] 1076 | 1077 | [[package]] 1078 | name = "windows-sys" 1079 | version = "0.52.0" 1080 | source = "registry+https://github.com/rust-lang/crates.io-index" 1081 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1082 | dependencies = [ 1083 | "windows-targets", 1084 | ] 1085 | 1086 | [[package]] 1087 | name = "windows-targets" 1088 | version = "0.52.5" 1089 | source = "registry+https://github.com/rust-lang/crates.io-index" 1090 | checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" 1091 | dependencies = [ 1092 | "windows_aarch64_gnullvm 0.52.5", 1093 | "windows_aarch64_msvc 0.52.5", 1094 | "windows_i686_gnu 0.52.5", 1095 | "windows_i686_gnullvm", 1096 | "windows_i686_msvc 0.52.5", 1097 | "windows_x86_64_gnu 0.52.5", 1098 | "windows_x86_64_gnullvm 0.52.5", 1099 | "windows_x86_64_msvc 0.52.5", 1100 | ] 1101 | 1102 | [[package]] 1103 | name = "windows_aarch64_gnullvm" 1104 | version = "0.42.0" 1105 | source = "registry+https://github.com/rust-lang/crates.io-index" 1106 | checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" 1107 | 1108 | [[package]] 1109 | name = "windows_aarch64_gnullvm" 1110 | version = "0.52.5" 1111 | source = "registry+https://github.com/rust-lang/crates.io-index" 1112 | checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" 1113 | 1114 | [[package]] 1115 | name = "windows_aarch64_msvc" 1116 | version = "0.36.1" 1117 | source = "registry+https://github.com/rust-lang/crates.io-index" 1118 | checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" 1119 | 1120 | [[package]] 1121 | name = "windows_aarch64_msvc" 1122 | version = "0.42.0" 1123 | source = "registry+https://github.com/rust-lang/crates.io-index" 1124 | checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" 1125 | 1126 | [[package]] 1127 | name = "windows_aarch64_msvc" 1128 | version = "0.52.5" 1129 | source = "registry+https://github.com/rust-lang/crates.io-index" 1130 | checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" 1131 | 1132 | [[package]] 1133 | name = "windows_i686_gnu" 1134 | version = "0.36.1" 1135 | source = "registry+https://github.com/rust-lang/crates.io-index" 1136 | checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" 1137 | 1138 | [[package]] 1139 | name = "windows_i686_gnu" 1140 | version = "0.42.0" 1141 | source = "registry+https://github.com/rust-lang/crates.io-index" 1142 | checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" 1143 | 1144 | [[package]] 1145 | name = "windows_i686_gnu" 1146 | version = "0.52.5" 1147 | source = "registry+https://github.com/rust-lang/crates.io-index" 1148 | checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" 1149 | 1150 | [[package]] 1151 | name = "windows_i686_gnullvm" 1152 | version = "0.52.5" 1153 | source = "registry+https://github.com/rust-lang/crates.io-index" 1154 | checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" 1155 | 1156 | [[package]] 1157 | name = "windows_i686_msvc" 1158 | version = "0.36.1" 1159 | source = "registry+https://github.com/rust-lang/crates.io-index" 1160 | checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" 1161 | 1162 | [[package]] 1163 | name = "windows_i686_msvc" 1164 | version = "0.42.0" 1165 | source = "registry+https://github.com/rust-lang/crates.io-index" 1166 | checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" 1167 | 1168 | [[package]] 1169 | name = "windows_i686_msvc" 1170 | version = "0.52.5" 1171 | source = "registry+https://github.com/rust-lang/crates.io-index" 1172 | checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" 1173 | 1174 | [[package]] 1175 | name = "windows_x86_64_gnu" 1176 | version = "0.36.1" 1177 | source = "registry+https://github.com/rust-lang/crates.io-index" 1178 | checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" 1179 | 1180 | [[package]] 1181 | name = "windows_x86_64_gnu" 1182 | version = "0.42.0" 1183 | source = "registry+https://github.com/rust-lang/crates.io-index" 1184 | checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" 1185 | 1186 | [[package]] 1187 | name = "windows_x86_64_gnu" 1188 | version = "0.52.5" 1189 | source = "registry+https://github.com/rust-lang/crates.io-index" 1190 | checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" 1191 | 1192 | [[package]] 1193 | name = "windows_x86_64_gnullvm" 1194 | version = "0.42.0" 1195 | source = "registry+https://github.com/rust-lang/crates.io-index" 1196 | checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" 1197 | 1198 | [[package]] 1199 | name = "windows_x86_64_gnullvm" 1200 | version = "0.52.5" 1201 | source = "registry+https://github.com/rust-lang/crates.io-index" 1202 | checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" 1203 | 1204 | [[package]] 1205 | name = "windows_x86_64_msvc" 1206 | version = "0.36.1" 1207 | source = "registry+https://github.com/rust-lang/crates.io-index" 1208 | checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" 1209 | 1210 | [[package]] 1211 | name = "windows_x86_64_msvc" 1212 | version = "0.42.0" 1213 | source = "registry+https://github.com/rust-lang/crates.io-index" 1214 | checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" 1215 | 1216 | [[package]] 1217 | name = "windows_x86_64_msvc" 1218 | version = "0.52.5" 1219 | source = "registry+https://github.com/rust-lang/crates.io-index" 1220 | checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" 1221 | 1222 | [[package]] 1223 | name = "zeroize" 1224 | version = "1.8.1" 1225 | source = "registry+https://github.com/rust-lang/crates.io-index" 1226 | checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 1227 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "tinkoff-invest-api" 3 | version = "0.3.0" 4 | edition = "2021" 5 | description = "gRPC Клиент для Тинькофф Инвестиций (протокол v2)" 6 | license = "MIT" 7 | repository = "https://github.com/ovr/tinkoff-invest-rust" 8 | 9 | [dependencies] 10 | prost = "0.12" 11 | prost-types = "0.12" 12 | uuid = { version = "1", features = ["v4"] } 13 | tonic = { version = "0.11", features = ["tls", "tls-roots", "gzip"] } 14 | 15 | [dev-dependencies] 16 | async-stream = "0.3" 17 | futures = { version = "0.3", default-features = false, features = ["alloc"] } 18 | tokio = { version = "1.20", features = [ 19 | "rt-multi-thread", 20 | "time", 21 | "fs", 22 | "macros", 23 | "net", 24 | ] } 25 | tokio-stream = { version = "0.1", features = ["net"] } 26 | futures-util = { version = "0.3.21" } 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Dmitry Patsura 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # tinkoff-invest-rust 2 | 3 | > gRPC Клиент для Тинькофф Инвестиций (протокол v2) 4 | 5 | [![Crates.io](https://img.shields.io/crates/v/tinkoff-invest-api)](https://crates.io/crates/tinkoff-invest-api) 6 | [![Documentation](https://docs.rs/tinkoff-invest-api/badge.svg)](https://docs.rs/tinkoff-invest-api) 7 | [![Crates.io](https://img.shields.io/crates/l/tinkoff-invest-api)](LICENSE) 8 | 9 | ## Example 10 | 11 | First you need to install: 12 | 13 | ```toml 14 | [dependencies] 15 | tinkoff-invest-api = { version = "0.2" } 16 | ``` 17 | 18 | Then, on your main.rs: 19 | 20 | ```rust 21 | let service = TinkoffInvestService::new("my_token".to_string()); 22 | let channel = service.create_channel().await?; 23 | let mut users = service.users(channel).await?; 24 | 25 | let accounts = users 26 | .get_accounts(tonic::Request::new( 27 | tinkoff_invest_rust::tcs::GetAccountsRequest {}, 28 | )) 29 | .await?; 30 | 31 | println!("Response {:?}", accounts); 32 | ``` 33 | 34 | ## License 35 | 36 | This project is licensed under the [MIT license](LICENSE). 37 | -------------------------------------------------------------------------------- /examples/streaming/.gitignore: -------------------------------------------------------------------------------- 1 | target -------------------------------------------------------------------------------- /examples/streaming/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "adler" 7 | version = "1.0.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 10 | 11 | [[package]] 12 | name = "anyhow" 13 | version = "1.0.66" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" 16 | 17 | [[package]] 18 | name = "async-stream" 19 | version = "0.3.3" 20 | source = "registry+https://github.com/rust-lang/crates.io-index" 21 | checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" 22 | dependencies = [ 23 | "async-stream-impl", 24 | "futures-core", 25 | ] 26 | 27 | [[package]] 28 | name = "async-stream-impl" 29 | version = "0.3.3" 30 | source = "registry+https://github.com/rust-lang/crates.io-index" 31 | checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" 32 | dependencies = [ 33 | "proc-macro2", 34 | "quote", 35 | "syn", 36 | ] 37 | 38 | [[package]] 39 | name = "async-trait" 40 | version = "0.1.58" 41 | source = "registry+https://github.com/rust-lang/crates.io-index" 42 | checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c" 43 | dependencies = [ 44 | "proc-macro2", 45 | "quote", 46 | "syn", 47 | ] 48 | 49 | [[package]] 50 | name = "autocfg" 51 | version = "1.1.0" 52 | source = "registry+https://github.com/rust-lang/crates.io-index" 53 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 54 | 55 | [[package]] 56 | name = "axum" 57 | version = "0.5.17" 58 | source = "registry+https://github.com/rust-lang/crates.io-index" 59 | checksum = "acee9fd5073ab6b045a275b3e709c163dd36c90685219cb21804a147b58dba43" 60 | dependencies = [ 61 | "async-trait", 62 | "axum-core", 63 | "bitflags", 64 | "bytes", 65 | "futures-util", 66 | "http", 67 | "http-body", 68 | "hyper", 69 | "itoa", 70 | "matchit", 71 | "memchr", 72 | "mime", 73 | "percent-encoding", 74 | "pin-project-lite", 75 | "serde", 76 | "sync_wrapper", 77 | "tokio", 78 | "tower", 79 | "tower-http", 80 | "tower-layer", 81 | "tower-service", 82 | ] 83 | 84 | [[package]] 85 | name = "axum-core" 86 | version = "0.2.9" 87 | source = "registry+https://github.com/rust-lang/crates.io-index" 88 | checksum = "37e5939e02c56fecd5c017c37df4238c0a839fa76b7f97acdd7efb804fd181cc" 89 | dependencies = [ 90 | "async-trait", 91 | "bytes", 92 | "futures-util", 93 | "http", 94 | "http-body", 95 | "mime", 96 | "tower-layer", 97 | "tower-service", 98 | ] 99 | 100 | [[package]] 101 | name = "base64" 102 | version = "0.13.1" 103 | source = "registry+https://github.com/rust-lang/crates.io-index" 104 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 105 | 106 | [[package]] 107 | name = "bitflags" 108 | version = "1.3.2" 109 | source = "registry+https://github.com/rust-lang/crates.io-index" 110 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 111 | 112 | [[package]] 113 | name = "bumpalo" 114 | version = "3.11.1" 115 | source = "registry+https://github.com/rust-lang/crates.io-index" 116 | checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" 117 | 118 | [[package]] 119 | name = "bytes" 120 | version = "1.2.1" 121 | source = "registry+https://github.com/rust-lang/crates.io-index" 122 | checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" 123 | 124 | [[package]] 125 | name = "cc" 126 | version = "1.0.76" 127 | source = "registry+https://github.com/rust-lang/crates.io-index" 128 | checksum = "76a284da2e6fe2092f2353e51713435363112dfd60030e22add80be333fb928f" 129 | 130 | [[package]] 131 | name = "cfg-if" 132 | version = "1.0.0" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 135 | 136 | [[package]] 137 | name = "core-foundation" 138 | version = "0.9.3" 139 | source = "registry+https://github.com/rust-lang/crates.io-index" 140 | checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" 141 | dependencies = [ 142 | "core-foundation-sys", 143 | "libc", 144 | ] 145 | 146 | [[package]] 147 | name = "core-foundation-sys" 148 | version = "0.8.3" 149 | source = "registry+https://github.com/rust-lang/crates.io-index" 150 | checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" 151 | 152 | [[package]] 153 | name = "crc32fast" 154 | version = "1.3.2" 155 | source = "registry+https://github.com/rust-lang/crates.io-index" 156 | checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 157 | dependencies = [ 158 | "cfg-if", 159 | ] 160 | 161 | [[package]] 162 | name = "either" 163 | version = "1.8.0" 164 | source = "registry+https://github.com/rust-lang/crates.io-index" 165 | checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" 166 | 167 | [[package]] 168 | name = "flate2" 169 | version = "1.0.24" 170 | source = "registry+https://github.com/rust-lang/crates.io-index" 171 | checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" 172 | dependencies = [ 173 | "crc32fast", 174 | "miniz_oxide", 175 | ] 176 | 177 | [[package]] 178 | name = "flume" 179 | version = "0.10.14" 180 | source = "registry+https://github.com/rust-lang/crates.io-index" 181 | checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" 182 | dependencies = [ 183 | "futures-core", 184 | "futures-sink", 185 | "nanorand", 186 | "pin-project", 187 | "spin 0.9.4", 188 | ] 189 | 190 | [[package]] 191 | name = "fnv" 192 | version = "1.0.7" 193 | source = "registry+https://github.com/rust-lang/crates.io-index" 194 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 195 | 196 | [[package]] 197 | name = "futures" 198 | version = "0.3.25" 199 | source = "registry+https://github.com/rust-lang/crates.io-index" 200 | checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" 201 | dependencies = [ 202 | "futures-channel", 203 | "futures-core", 204 | "futures-io", 205 | "futures-sink", 206 | "futures-task", 207 | "futures-util", 208 | ] 209 | 210 | [[package]] 211 | name = "futures-channel" 212 | version = "0.3.25" 213 | source = "registry+https://github.com/rust-lang/crates.io-index" 214 | checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" 215 | dependencies = [ 216 | "futures-core", 217 | "futures-sink", 218 | ] 219 | 220 | [[package]] 221 | name = "futures-core" 222 | version = "0.3.25" 223 | source = "registry+https://github.com/rust-lang/crates.io-index" 224 | checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" 225 | 226 | [[package]] 227 | name = "futures-io" 228 | version = "0.3.25" 229 | source = "registry+https://github.com/rust-lang/crates.io-index" 230 | checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" 231 | 232 | [[package]] 233 | name = "futures-macro" 234 | version = "0.3.25" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" 237 | dependencies = [ 238 | "proc-macro2", 239 | "quote", 240 | "syn", 241 | ] 242 | 243 | [[package]] 244 | name = "futures-sink" 245 | version = "0.3.25" 246 | source = "registry+https://github.com/rust-lang/crates.io-index" 247 | checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" 248 | 249 | [[package]] 250 | name = "futures-task" 251 | version = "0.3.25" 252 | source = "registry+https://github.com/rust-lang/crates.io-index" 253 | checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" 254 | 255 | [[package]] 256 | name = "futures-util" 257 | version = "0.3.25" 258 | source = "registry+https://github.com/rust-lang/crates.io-index" 259 | checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" 260 | dependencies = [ 261 | "futures-core", 262 | "futures-macro", 263 | "futures-sink", 264 | "futures-task", 265 | "pin-project-lite", 266 | "pin-utils", 267 | "slab", 268 | ] 269 | 270 | [[package]] 271 | name = "getrandom" 272 | version = "0.2.8" 273 | source = "registry+https://github.com/rust-lang/crates.io-index" 274 | checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" 275 | dependencies = [ 276 | "cfg-if", 277 | "js-sys", 278 | "libc", 279 | "wasi", 280 | "wasm-bindgen", 281 | ] 282 | 283 | [[package]] 284 | name = "h2" 285 | version = "0.3.15" 286 | source = "registry+https://github.com/rust-lang/crates.io-index" 287 | checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" 288 | dependencies = [ 289 | "bytes", 290 | "fnv", 291 | "futures-core", 292 | "futures-sink", 293 | "futures-util", 294 | "http", 295 | "indexmap", 296 | "slab", 297 | "tokio", 298 | "tokio-util", 299 | "tracing", 300 | ] 301 | 302 | [[package]] 303 | name = "hashbrown" 304 | version = "0.12.3" 305 | source = "registry+https://github.com/rust-lang/crates.io-index" 306 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 307 | 308 | [[package]] 309 | name = "hermit-abi" 310 | version = "0.1.19" 311 | source = "registry+https://github.com/rust-lang/crates.io-index" 312 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 313 | dependencies = [ 314 | "libc", 315 | ] 316 | 317 | [[package]] 318 | name = "http" 319 | version = "0.2.8" 320 | source = "registry+https://github.com/rust-lang/crates.io-index" 321 | checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" 322 | dependencies = [ 323 | "bytes", 324 | "fnv", 325 | "itoa", 326 | ] 327 | 328 | [[package]] 329 | name = "http-body" 330 | version = "0.4.5" 331 | source = "registry+https://github.com/rust-lang/crates.io-index" 332 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 333 | dependencies = [ 334 | "bytes", 335 | "http", 336 | "pin-project-lite", 337 | ] 338 | 339 | [[package]] 340 | name = "http-range-header" 341 | version = "0.3.0" 342 | source = "registry+https://github.com/rust-lang/crates.io-index" 343 | checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" 344 | 345 | [[package]] 346 | name = "httparse" 347 | version = "1.8.0" 348 | source = "registry+https://github.com/rust-lang/crates.io-index" 349 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 350 | 351 | [[package]] 352 | name = "httpdate" 353 | version = "1.0.2" 354 | source = "registry+https://github.com/rust-lang/crates.io-index" 355 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 356 | 357 | [[package]] 358 | name = "hyper" 359 | version = "0.14.23" 360 | source = "registry+https://github.com/rust-lang/crates.io-index" 361 | checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" 362 | dependencies = [ 363 | "bytes", 364 | "futures-channel", 365 | "futures-core", 366 | "futures-util", 367 | "h2", 368 | "http", 369 | "http-body", 370 | "httparse", 371 | "httpdate", 372 | "itoa", 373 | "pin-project-lite", 374 | "socket2", 375 | "tokio", 376 | "tower-service", 377 | "tracing", 378 | "want", 379 | ] 380 | 381 | [[package]] 382 | name = "hyper-timeout" 383 | version = "0.4.1" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" 386 | dependencies = [ 387 | "hyper", 388 | "pin-project-lite", 389 | "tokio", 390 | "tokio-io-timeout", 391 | ] 392 | 393 | [[package]] 394 | name = "indexmap" 395 | version = "1.9.1" 396 | source = "registry+https://github.com/rust-lang/crates.io-index" 397 | checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" 398 | dependencies = [ 399 | "autocfg", 400 | "hashbrown", 401 | ] 402 | 403 | [[package]] 404 | name = "itertools" 405 | version = "0.10.5" 406 | source = "registry+https://github.com/rust-lang/crates.io-index" 407 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 408 | dependencies = [ 409 | "either", 410 | ] 411 | 412 | [[package]] 413 | name = "itoa" 414 | version = "1.0.4" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" 417 | 418 | [[package]] 419 | name = "js-sys" 420 | version = "0.3.60" 421 | source = "registry+https://github.com/rust-lang/crates.io-index" 422 | checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" 423 | dependencies = [ 424 | "wasm-bindgen", 425 | ] 426 | 427 | [[package]] 428 | name = "lazy_static" 429 | version = "1.4.0" 430 | source = "registry+https://github.com/rust-lang/crates.io-index" 431 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 432 | 433 | [[package]] 434 | name = "libc" 435 | version = "0.2.137" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" 438 | 439 | [[package]] 440 | name = "lock_api" 441 | version = "0.4.9" 442 | source = "registry+https://github.com/rust-lang/crates.io-index" 443 | checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" 444 | dependencies = [ 445 | "autocfg", 446 | "scopeguard", 447 | ] 448 | 449 | [[package]] 450 | name = "log" 451 | version = "0.4.17" 452 | source = "registry+https://github.com/rust-lang/crates.io-index" 453 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 454 | dependencies = [ 455 | "cfg-if", 456 | ] 457 | 458 | [[package]] 459 | name = "matchit" 460 | version = "0.5.0" 461 | source = "registry+https://github.com/rust-lang/crates.io-index" 462 | checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" 463 | 464 | [[package]] 465 | name = "memchr" 466 | version = "2.5.0" 467 | source = "registry+https://github.com/rust-lang/crates.io-index" 468 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 469 | 470 | [[package]] 471 | name = "mime" 472 | version = "0.3.16" 473 | source = "registry+https://github.com/rust-lang/crates.io-index" 474 | checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" 475 | 476 | [[package]] 477 | name = "miniz_oxide" 478 | version = "0.5.4" 479 | source = "registry+https://github.com/rust-lang/crates.io-index" 480 | checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" 481 | dependencies = [ 482 | "adler", 483 | ] 484 | 485 | [[package]] 486 | name = "mio" 487 | version = "0.8.5" 488 | source = "registry+https://github.com/rust-lang/crates.io-index" 489 | checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" 490 | dependencies = [ 491 | "libc", 492 | "log", 493 | "wasi", 494 | "windows-sys 0.42.0", 495 | ] 496 | 497 | [[package]] 498 | name = "nanorand" 499 | version = "0.7.0" 500 | source = "registry+https://github.com/rust-lang/crates.io-index" 501 | checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" 502 | dependencies = [ 503 | "getrandom", 504 | ] 505 | 506 | [[package]] 507 | name = "num_cpus" 508 | version = "1.14.0" 509 | source = "registry+https://github.com/rust-lang/crates.io-index" 510 | checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" 511 | dependencies = [ 512 | "hermit-abi", 513 | "libc", 514 | ] 515 | 516 | [[package]] 517 | name = "once_cell" 518 | version = "1.16.0" 519 | source = "registry+https://github.com/rust-lang/crates.io-index" 520 | checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" 521 | 522 | [[package]] 523 | name = "openssl-probe" 524 | version = "0.1.5" 525 | source = "registry+https://github.com/rust-lang/crates.io-index" 526 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 527 | 528 | [[package]] 529 | name = "percent-encoding" 530 | version = "2.2.0" 531 | source = "registry+https://github.com/rust-lang/crates.io-index" 532 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 533 | 534 | [[package]] 535 | name = "pin-project" 536 | version = "1.0.12" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" 539 | dependencies = [ 540 | "pin-project-internal", 541 | ] 542 | 543 | [[package]] 544 | name = "pin-project-internal" 545 | version = "1.0.12" 546 | source = "registry+https://github.com/rust-lang/crates.io-index" 547 | checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" 548 | dependencies = [ 549 | "proc-macro2", 550 | "quote", 551 | "syn", 552 | ] 553 | 554 | [[package]] 555 | name = "pin-project-lite" 556 | version = "0.2.9" 557 | source = "registry+https://github.com/rust-lang/crates.io-index" 558 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 559 | 560 | [[package]] 561 | name = "pin-utils" 562 | version = "0.1.0" 563 | source = "registry+https://github.com/rust-lang/crates.io-index" 564 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 565 | 566 | [[package]] 567 | name = "ppv-lite86" 568 | version = "0.2.17" 569 | source = "registry+https://github.com/rust-lang/crates.io-index" 570 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 571 | 572 | [[package]] 573 | name = "proc-macro2" 574 | version = "1.0.47" 575 | source = "registry+https://github.com/rust-lang/crates.io-index" 576 | checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" 577 | dependencies = [ 578 | "unicode-ident", 579 | ] 580 | 581 | [[package]] 582 | name = "prost" 583 | version = "0.11.2" 584 | source = "registry+https://github.com/rust-lang/crates.io-index" 585 | checksum = "a0841812012b2d4a6145fae9a6af1534873c32aa67fff26bd09f8fa42c83f95a" 586 | dependencies = [ 587 | "bytes", 588 | "prost-derive", 589 | ] 590 | 591 | [[package]] 592 | name = "prost-derive" 593 | version = "0.11.2" 594 | source = "registry+https://github.com/rust-lang/crates.io-index" 595 | checksum = "164ae68b6587001ca506d3bf7f1000bfa248d0e1217b618108fba4ec1d0cc306" 596 | dependencies = [ 597 | "anyhow", 598 | "itertools", 599 | "proc-macro2", 600 | "quote", 601 | "syn", 602 | ] 603 | 604 | [[package]] 605 | name = "prost-types" 606 | version = "0.11.2" 607 | source = "registry+https://github.com/rust-lang/crates.io-index" 608 | checksum = "747761bc3dc48f9a34553bf65605cf6cb6288ba219f3450b4275dbd81539551a" 609 | dependencies = [ 610 | "bytes", 611 | "prost", 612 | ] 613 | 614 | [[package]] 615 | name = "quote" 616 | version = "1.0.21" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" 619 | dependencies = [ 620 | "proc-macro2", 621 | ] 622 | 623 | [[package]] 624 | name = "rand" 625 | version = "0.8.5" 626 | source = "registry+https://github.com/rust-lang/crates.io-index" 627 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 628 | dependencies = [ 629 | "libc", 630 | "rand_chacha", 631 | "rand_core", 632 | ] 633 | 634 | [[package]] 635 | name = "rand_chacha" 636 | version = "0.3.1" 637 | source = "registry+https://github.com/rust-lang/crates.io-index" 638 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 639 | dependencies = [ 640 | "ppv-lite86", 641 | "rand_core", 642 | ] 643 | 644 | [[package]] 645 | name = "rand_core" 646 | version = "0.6.4" 647 | source = "registry+https://github.com/rust-lang/crates.io-index" 648 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 649 | dependencies = [ 650 | "getrandom", 651 | ] 652 | 653 | [[package]] 654 | name = "ring" 655 | version = "0.16.20" 656 | source = "registry+https://github.com/rust-lang/crates.io-index" 657 | checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" 658 | dependencies = [ 659 | "cc", 660 | "libc", 661 | "once_cell", 662 | "spin 0.5.2", 663 | "untrusted", 664 | "web-sys", 665 | "winapi", 666 | ] 667 | 668 | [[package]] 669 | name = "rustls" 670 | version = "0.20.7" 671 | source = "registry+https://github.com/rust-lang/crates.io-index" 672 | checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" 673 | dependencies = [ 674 | "log", 675 | "ring", 676 | "sct", 677 | "webpki", 678 | ] 679 | 680 | [[package]] 681 | name = "rustls-native-certs" 682 | version = "0.6.2" 683 | source = "registry+https://github.com/rust-lang/crates.io-index" 684 | checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" 685 | dependencies = [ 686 | "openssl-probe", 687 | "rustls-pemfile", 688 | "schannel", 689 | "security-framework", 690 | ] 691 | 692 | [[package]] 693 | name = "rustls-pemfile" 694 | version = "1.0.1" 695 | source = "registry+https://github.com/rust-lang/crates.io-index" 696 | checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" 697 | dependencies = [ 698 | "base64", 699 | ] 700 | 701 | [[package]] 702 | name = "schannel" 703 | version = "0.1.20" 704 | source = "registry+https://github.com/rust-lang/crates.io-index" 705 | checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" 706 | dependencies = [ 707 | "lazy_static", 708 | "windows-sys 0.36.1", 709 | ] 710 | 711 | [[package]] 712 | name = "scopeguard" 713 | version = "1.1.0" 714 | source = "registry+https://github.com/rust-lang/crates.io-index" 715 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 716 | 717 | [[package]] 718 | name = "sct" 719 | version = "0.7.0" 720 | source = "registry+https://github.com/rust-lang/crates.io-index" 721 | checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" 722 | dependencies = [ 723 | "ring", 724 | "untrusted", 725 | ] 726 | 727 | [[package]] 728 | name = "security-framework" 729 | version = "2.7.0" 730 | source = "registry+https://github.com/rust-lang/crates.io-index" 731 | checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" 732 | dependencies = [ 733 | "bitflags", 734 | "core-foundation", 735 | "core-foundation-sys", 736 | "libc", 737 | "security-framework-sys", 738 | ] 739 | 740 | [[package]] 741 | name = "security-framework-sys" 742 | version = "2.6.1" 743 | source = "registry+https://github.com/rust-lang/crates.io-index" 744 | checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" 745 | dependencies = [ 746 | "core-foundation-sys", 747 | "libc", 748 | ] 749 | 750 | [[package]] 751 | name = "serde" 752 | version = "1.0.147" 753 | source = "registry+https://github.com/rust-lang/crates.io-index" 754 | checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" 755 | 756 | [[package]] 757 | name = "slab" 758 | version = "0.4.7" 759 | source = "registry+https://github.com/rust-lang/crates.io-index" 760 | checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" 761 | dependencies = [ 762 | "autocfg", 763 | ] 764 | 765 | [[package]] 766 | name = "socket2" 767 | version = "0.4.7" 768 | source = "registry+https://github.com/rust-lang/crates.io-index" 769 | checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" 770 | dependencies = [ 771 | "libc", 772 | "winapi", 773 | ] 774 | 775 | [[package]] 776 | name = "spin" 777 | version = "0.5.2" 778 | source = "registry+https://github.com/rust-lang/crates.io-index" 779 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 780 | 781 | [[package]] 782 | name = "spin" 783 | version = "0.9.4" 784 | source = "registry+https://github.com/rust-lang/crates.io-index" 785 | checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09" 786 | dependencies = [ 787 | "lock_api", 788 | ] 789 | 790 | [[package]] 791 | name = "streaming" 792 | version = "0.1.0" 793 | dependencies = [ 794 | "async-stream", 795 | "flume", 796 | "futures", 797 | "futures-util", 798 | "tinkoff-invest-api", 799 | "tokio", 800 | "tokio-stream", 801 | ] 802 | 803 | [[package]] 804 | name = "syn" 805 | version = "1.0.103" 806 | source = "registry+https://github.com/rust-lang/crates.io-index" 807 | checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" 808 | dependencies = [ 809 | "proc-macro2", 810 | "quote", 811 | "unicode-ident", 812 | ] 813 | 814 | [[package]] 815 | name = "sync_wrapper" 816 | version = "0.1.1" 817 | source = "registry+https://github.com/rust-lang/crates.io-index" 818 | checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" 819 | 820 | [[package]] 821 | name = "tinkoff-invest-api" 822 | version = "0.2.1" 823 | dependencies = [ 824 | "prost", 825 | "prost-types", 826 | "tonic", 827 | "uuid", 828 | ] 829 | 830 | [[package]] 831 | name = "tokio" 832 | version = "1.21.2" 833 | source = "registry+https://github.com/rust-lang/crates.io-index" 834 | checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" 835 | dependencies = [ 836 | "autocfg", 837 | "bytes", 838 | "libc", 839 | "memchr", 840 | "mio", 841 | "num_cpus", 842 | "pin-project-lite", 843 | "socket2", 844 | "tokio-macros", 845 | "winapi", 846 | ] 847 | 848 | [[package]] 849 | name = "tokio-io-timeout" 850 | version = "1.2.0" 851 | source = "registry+https://github.com/rust-lang/crates.io-index" 852 | checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" 853 | dependencies = [ 854 | "pin-project-lite", 855 | "tokio", 856 | ] 857 | 858 | [[package]] 859 | name = "tokio-macros" 860 | version = "1.8.0" 861 | source = "registry+https://github.com/rust-lang/crates.io-index" 862 | checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" 863 | dependencies = [ 864 | "proc-macro2", 865 | "quote", 866 | "syn", 867 | ] 868 | 869 | [[package]] 870 | name = "tokio-rustls" 871 | version = "0.23.4" 872 | source = "registry+https://github.com/rust-lang/crates.io-index" 873 | checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" 874 | dependencies = [ 875 | "rustls", 876 | "tokio", 877 | "webpki", 878 | ] 879 | 880 | [[package]] 881 | name = "tokio-stream" 882 | version = "0.1.11" 883 | source = "registry+https://github.com/rust-lang/crates.io-index" 884 | checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" 885 | dependencies = [ 886 | "futures-core", 887 | "pin-project-lite", 888 | "tokio", 889 | ] 890 | 891 | [[package]] 892 | name = "tokio-util" 893 | version = "0.7.4" 894 | source = "registry+https://github.com/rust-lang/crates.io-index" 895 | checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" 896 | dependencies = [ 897 | "bytes", 898 | "futures-core", 899 | "futures-sink", 900 | "pin-project-lite", 901 | "tokio", 902 | "tracing", 903 | ] 904 | 905 | [[package]] 906 | name = "tonic" 907 | version = "0.8.2" 908 | source = "registry+https://github.com/rust-lang/crates.io-index" 909 | checksum = "55b9af819e54b8f33d453655bef9b9acc171568fb49523078d0cc4e7484200ec" 910 | dependencies = [ 911 | "async-stream", 912 | "async-trait", 913 | "axum", 914 | "base64", 915 | "bytes", 916 | "flate2", 917 | "futures-core", 918 | "futures-util", 919 | "h2", 920 | "http", 921 | "http-body", 922 | "hyper", 923 | "hyper-timeout", 924 | "percent-encoding", 925 | "pin-project", 926 | "prost", 927 | "prost-derive", 928 | "rustls-native-certs", 929 | "rustls-pemfile", 930 | "tokio", 931 | "tokio-rustls", 932 | "tokio-stream", 933 | "tokio-util", 934 | "tower", 935 | "tower-layer", 936 | "tower-service", 937 | "tracing", 938 | "tracing-futures", 939 | ] 940 | 941 | [[package]] 942 | name = "tower" 943 | version = "0.4.13" 944 | source = "registry+https://github.com/rust-lang/crates.io-index" 945 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 946 | dependencies = [ 947 | "futures-core", 948 | "futures-util", 949 | "indexmap", 950 | "pin-project", 951 | "pin-project-lite", 952 | "rand", 953 | "slab", 954 | "tokio", 955 | "tokio-util", 956 | "tower-layer", 957 | "tower-service", 958 | "tracing", 959 | ] 960 | 961 | [[package]] 962 | name = "tower-http" 963 | version = "0.3.4" 964 | source = "registry+https://github.com/rust-lang/crates.io-index" 965 | checksum = "3c530c8675c1dbf98facee631536fa116b5fb6382d7dd6dc1b118d970eafe3ba" 966 | dependencies = [ 967 | "bitflags", 968 | "bytes", 969 | "futures-core", 970 | "futures-util", 971 | "http", 972 | "http-body", 973 | "http-range-header", 974 | "pin-project-lite", 975 | "tower", 976 | "tower-layer", 977 | "tower-service", 978 | ] 979 | 980 | [[package]] 981 | name = "tower-layer" 982 | version = "0.3.2" 983 | source = "registry+https://github.com/rust-lang/crates.io-index" 984 | checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" 985 | 986 | [[package]] 987 | name = "tower-service" 988 | version = "0.3.2" 989 | source = "registry+https://github.com/rust-lang/crates.io-index" 990 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 991 | 992 | [[package]] 993 | name = "tracing" 994 | version = "0.1.37" 995 | source = "registry+https://github.com/rust-lang/crates.io-index" 996 | checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" 997 | dependencies = [ 998 | "cfg-if", 999 | "log", 1000 | "pin-project-lite", 1001 | "tracing-attributes", 1002 | "tracing-core", 1003 | ] 1004 | 1005 | [[package]] 1006 | name = "tracing-attributes" 1007 | version = "0.1.23" 1008 | source = "registry+https://github.com/rust-lang/crates.io-index" 1009 | checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" 1010 | dependencies = [ 1011 | "proc-macro2", 1012 | "quote", 1013 | "syn", 1014 | ] 1015 | 1016 | [[package]] 1017 | name = "tracing-core" 1018 | version = "0.1.30" 1019 | source = "registry+https://github.com/rust-lang/crates.io-index" 1020 | checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" 1021 | dependencies = [ 1022 | "once_cell", 1023 | ] 1024 | 1025 | [[package]] 1026 | name = "tracing-futures" 1027 | version = "0.2.5" 1028 | source = "registry+https://github.com/rust-lang/crates.io-index" 1029 | checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" 1030 | dependencies = [ 1031 | "pin-project", 1032 | "tracing", 1033 | ] 1034 | 1035 | [[package]] 1036 | name = "try-lock" 1037 | version = "0.2.3" 1038 | source = "registry+https://github.com/rust-lang/crates.io-index" 1039 | checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" 1040 | 1041 | [[package]] 1042 | name = "unicode-ident" 1043 | version = "1.0.5" 1044 | source = "registry+https://github.com/rust-lang/crates.io-index" 1045 | checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" 1046 | 1047 | [[package]] 1048 | name = "untrusted" 1049 | version = "0.7.1" 1050 | source = "registry+https://github.com/rust-lang/crates.io-index" 1051 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" 1052 | 1053 | [[package]] 1054 | name = "uuid" 1055 | version = "0.8.2" 1056 | source = "registry+https://github.com/rust-lang/crates.io-index" 1057 | checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" 1058 | dependencies = [ 1059 | "getrandom", 1060 | ] 1061 | 1062 | [[package]] 1063 | name = "want" 1064 | version = "0.3.0" 1065 | source = "registry+https://github.com/rust-lang/crates.io-index" 1066 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 1067 | dependencies = [ 1068 | "log", 1069 | "try-lock", 1070 | ] 1071 | 1072 | [[package]] 1073 | name = "wasi" 1074 | version = "0.11.0+wasi-snapshot-preview1" 1075 | source = "registry+https://github.com/rust-lang/crates.io-index" 1076 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1077 | 1078 | [[package]] 1079 | name = "wasm-bindgen" 1080 | version = "0.2.83" 1081 | source = "registry+https://github.com/rust-lang/crates.io-index" 1082 | checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" 1083 | dependencies = [ 1084 | "cfg-if", 1085 | "wasm-bindgen-macro", 1086 | ] 1087 | 1088 | [[package]] 1089 | name = "wasm-bindgen-backend" 1090 | version = "0.2.83" 1091 | source = "registry+https://github.com/rust-lang/crates.io-index" 1092 | checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" 1093 | dependencies = [ 1094 | "bumpalo", 1095 | "log", 1096 | "once_cell", 1097 | "proc-macro2", 1098 | "quote", 1099 | "syn", 1100 | "wasm-bindgen-shared", 1101 | ] 1102 | 1103 | [[package]] 1104 | name = "wasm-bindgen-macro" 1105 | version = "0.2.83" 1106 | source = "registry+https://github.com/rust-lang/crates.io-index" 1107 | checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" 1108 | dependencies = [ 1109 | "quote", 1110 | "wasm-bindgen-macro-support", 1111 | ] 1112 | 1113 | [[package]] 1114 | name = "wasm-bindgen-macro-support" 1115 | version = "0.2.83" 1116 | source = "registry+https://github.com/rust-lang/crates.io-index" 1117 | checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" 1118 | dependencies = [ 1119 | "proc-macro2", 1120 | "quote", 1121 | "syn", 1122 | "wasm-bindgen-backend", 1123 | "wasm-bindgen-shared", 1124 | ] 1125 | 1126 | [[package]] 1127 | name = "wasm-bindgen-shared" 1128 | version = "0.2.83" 1129 | source = "registry+https://github.com/rust-lang/crates.io-index" 1130 | checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" 1131 | 1132 | [[package]] 1133 | name = "web-sys" 1134 | version = "0.3.60" 1135 | source = "registry+https://github.com/rust-lang/crates.io-index" 1136 | checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" 1137 | dependencies = [ 1138 | "js-sys", 1139 | "wasm-bindgen", 1140 | ] 1141 | 1142 | [[package]] 1143 | name = "webpki" 1144 | version = "0.22.0" 1145 | source = "registry+https://github.com/rust-lang/crates.io-index" 1146 | checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" 1147 | dependencies = [ 1148 | "ring", 1149 | "untrusted", 1150 | ] 1151 | 1152 | [[package]] 1153 | name = "winapi" 1154 | version = "0.3.9" 1155 | source = "registry+https://github.com/rust-lang/crates.io-index" 1156 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1157 | dependencies = [ 1158 | "winapi-i686-pc-windows-gnu", 1159 | "winapi-x86_64-pc-windows-gnu", 1160 | ] 1161 | 1162 | [[package]] 1163 | name = "winapi-i686-pc-windows-gnu" 1164 | version = "0.4.0" 1165 | source = "registry+https://github.com/rust-lang/crates.io-index" 1166 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1167 | 1168 | [[package]] 1169 | name = "winapi-x86_64-pc-windows-gnu" 1170 | version = "0.4.0" 1171 | source = "registry+https://github.com/rust-lang/crates.io-index" 1172 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1173 | 1174 | [[package]] 1175 | name = "windows-sys" 1176 | version = "0.36.1" 1177 | source = "registry+https://github.com/rust-lang/crates.io-index" 1178 | checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" 1179 | dependencies = [ 1180 | "windows_aarch64_msvc 0.36.1", 1181 | "windows_i686_gnu 0.36.1", 1182 | "windows_i686_msvc 0.36.1", 1183 | "windows_x86_64_gnu 0.36.1", 1184 | "windows_x86_64_msvc 0.36.1", 1185 | ] 1186 | 1187 | [[package]] 1188 | name = "windows-sys" 1189 | version = "0.42.0" 1190 | source = "registry+https://github.com/rust-lang/crates.io-index" 1191 | checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" 1192 | dependencies = [ 1193 | "windows_aarch64_gnullvm", 1194 | "windows_aarch64_msvc 0.42.0", 1195 | "windows_i686_gnu 0.42.0", 1196 | "windows_i686_msvc 0.42.0", 1197 | "windows_x86_64_gnu 0.42.0", 1198 | "windows_x86_64_gnullvm", 1199 | "windows_x86_64_msvc 0.42.0", 1200 | ] 1201 | 1202 | [[package]] 1203 | name = "windows_aarch64_gnullvm" 1204 | version = "0.42.0" 1205 | source = "registry+https://github.com/rust-lang/crates.io-index" 1206 | checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" 1207 | 1208 | [[package]] 1209 | name = "windows_aarch64_msvc" 1210 | version = "0.36.1" 1211 | source = "registry+https://github.com/rust-lang/crates.io-index" 1212 | checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" 1213 | 1214 | [[package]] 1215 | name = "windows_aarch64_msvc" 1216 | version = "0.42.0" 1217 | source = "registry+https://github.com/rust-lang/crates.io-index" 1218 | checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" 1219 | 1220 | [[package]] 1221 | name = "windows_i686_gnu" 1222 | version = "0.36.1" 1223 | source = "registry+https://github.com/rust-lang/crates.io-index" 1224 | checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" 1225 | 1226 | [[package]] 1227 | name = "windows_i686_gnu" 1228 | version = "0.42.0" 1229 | source = "registry+https://github.com/rust-lang/crates.io-index" 1230 | checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" 1231 | 1232 | [[package]] 1233 | name = "windows_i686_msvc" 1234 | version = "0.36.1" 1235 | source = "registry+https://github.com/rust-lang/crates.io-index" 1236 | checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" 1237 | 1238 | [[package]] 1239 | name = "windows_i686_msvc" 1240 | version = "0.42.0" 1241 | source = "registry+https://github.com/rust-lang/crates.io-index" 1242 | checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" 1243 | 1244 | [[package]] 1245 | name = "windows_x86_64_gnu" 1246 | version = "0.36.1" 1247 | source = "registry+https://github.com/rust-lang/crates.io-index" 1248 | checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" 1249 | 1250 | [[package]] 1251 | name = "windows_x86_64_gnu" 1252 | version = "0.42.0" 1253 | source = "registry+https://github.com/rust-lang/crates.io-index" 1254 | checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" 1255 | 1256 | [[package]] 1257 | name = "windows_x86_64_gnullvm" 1258 | version = "0.42.0" 1259 | source = "registry+https://github.com/rust-lang/crates.io-index" 1260 | checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" 1261 | 1262 | [[package]] 1263 | name = "windows_x86_64_msvc" 1264 | version = "0.36.1" 1265 | source = "registry+https://github.com/rust-lang/crates.io-index" 1266 | checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" 1267 | 1268 | [[package]] 1269 | name = "windows_x86_64_msvc" 1270 | version = "0.42.0" 1271 | source = "registry+https://github.com/rust-lang/crates.io-index" 1272 | checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" 1273 | -------------------------------------------------------------------------------- /examples/streaming/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "streaming" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | tinkoff-invest-api = { path = "../../"} 10 | async-stream = "0.3" 11 | futures = {version = "0.3", default-features = false, features = ["alloc"]} 12 | tokio = {version = "1.0", features = ["rt-multi-thread", "time", "fs", "macros", "net"]} 13 | tokio-stream = {version = "0.1", features = ["net"]} 14 | futures-util = {version = "0.3.21"} 15 | flume = "0.10" 16 | -------------------------------------------------------------------------------- /examples/streaming/src/main.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | env, 3 | pin::Pin, 4 | task::{Context, Poll}, 5 | }; 6 | 7 | use futures::{Stream, StreamExt, TryStreamExt}; 8 | use futures_util::stream; 9 | use tinkoff_invest_api::{ 10 | tcs::{ 11 | market_data_request::Payload, CandleInstrument, InstrumentIdType, InstrumentRequest, 12 | InstrumentStatus, InstrumentsRequest, OrderBookInstrument, Share, ShareResponse, 13 | SubscribeCandlesRequest, SubscribeOrderBookRequest, SubscriptionAction, 14 | SubscriptionInterval, 15 | }, 16 | TIResult, TinkoffInvestService, 17 | }; 18 | 19 | #[tokio::main] 20 | async fn main() -> TIResult<()> { 21 | let service = TinkoffInvestService::new(env::var("TINKOFF_SDK_TESTING_ENV").unwrap()); 22 | let channel = service.create_channel().await?; 23 | let mut marketdata_stream = service.marketdata_stream(channel).await?; 24 | 25 | let (tx, rx) = flume::unbounded(); 26 | let request = tinkoff_invest_api::tcs::MarketDataRequest { 27 | payload: Some(Payload::SubscribeCandlesRequest(SubscribeCandlesRequest { 28 | subscription_action: SubscriptionAction::Subscribe as i32, 29 | instruments: vec![CandleInstrument { 30 | figi: "BBG00YFSF9D7".to_string(), 31 | interval: SubscriptionInterval::OneMinute as i32, 32 | instrument_id: "figi".to_string(), 33 | }], 34 | waiting_close: true, 35 | })), 36 | }; 37 | tx.send(request).unwrap(); 38 | 39 | let response = marketdata_stream 40 | .market_data_stream(rx.into_stream()) 41 | .await?; 42 | 43 | let mut streaming = response.into_inner(); 44 | 45 | loop { 46 | if let Some(next_message) = streaming.message().await? { 47 | println!("MarketData {:?}", next_message); 48 | } 49 | } 50 | 51 | Ok(()) 52 | } 53 | -------------------------------------------------------------------------------- /generator/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /generator/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "adler" 7 | version = "1.0.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 10 | 11 | [[package]] 12 | name = "anyhow" 13 | version = "1.0.68" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61" 16 | 17 | [[package]] 18 | name = "async-stream" 19 | version = "0.3.3" 20 | source = "registry+https://github.com/rust-lang/crates.io-index" 21 | checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" 22 | dependencies = [ 23 | "async-stream-impl", 24 | "futures-core", 25 | ] 26 | 27 | [[package]] 28 | name = "async-stream-impl" 29 | version = "0.3.3" 30 | source = "registry+https://github.com/rust-lang/crates.io-index" 31 | checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" 32 | dependencies = [ 33 | "proc-macro2", 34 | "quote", 35 | "syn", 36 | ] 37 | 38 | [[package]] 39 | name = "async-trait" 40 | version = "0.1.61" 41 | source = "registry+https://github.com/rust-lang/crates.io-index" 42 | checksum = "705339e0e4a9690e2908d2b3d049d85682cf19fbd5782494498fbf7003a6a282" 43 | dependencies = [ 44 | "proc-macro2", 45 | "quote", 46 | "syn", 47 | ] 48 | 49 | [[package]] 50 | name = "autocfg" 51 | version = "1.1.0" 52 | source = "registry+https://github.com/rust-lang/crates.io-index" 53 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 54 | 55 | [[package]] 56 | name = "axum" 57 | version = "0.6.2" 58 | source = "registry+https://github.com/rust-lang/crates.io-index" 59 | checksum = "1304eab461cf02bd70b083ed8273388f9724c549b316ba3d1e213ce0e9e7fb7e" 60 | dependencies = [ 61 | "async-trait", 62 | "axum-core", 63 | "bitflags", 64 | "bytes", 65 | "futures-util", 66 | "http", 67 | "http-body", 68 | "hyper", 69 | "itoa", 70 | "matchit", 71 | "memchr", 72 | "mime", 73 | "percent-encoding", 74 | "pin-project-lite", 75 | "rustversion", 76 | "serde", 77 | "sync_wrapper", 78 | "tower", 79 | "tower-http", 80 | "tower-layer", 81 | "tower-service", 82 | ] 83 | 84 | [[package]] 85 | name = "axum-core" 86 | version = "0.3.1" 87 | source = "registry+https://github.com/rust-lang/crates.io-index" 88 | checksum = "f487e40dc9daee24d8a1779df88522f159a54a980f99cfbe43db0be0bd3444a8" 89 | dependencies = [ 90 | "async-trait", 91 | "bytes", 92 | "futures-util", 93 | "http", 94 | "http-body", 95 | "mime", 96 | "rustversion", 97 | "tower-layer", 98 | "tower-service", 99 | ] 100 | 101 | [[package]] 102 | name = "base64" 103 | version = "0.13.1" 104 | source = "registry+https://github.com/rust-lang/crates.io-index" 105 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 106 | 107 | [[package]] 108 | name = "base64" 109 | version = "0.21.0" 110 | source = "registry+https://github.com/rust-lang/crates.io-index" 111 | checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" 112 | 113 | [[package]] 114 | name = "bitflags" 115 | version = "1.3.2" 116 | source = "registry+https://github.com/rust-lang/crates.io-index" 117 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 118 | 119 | [[package]] 120 | name = "bumpalo" 121 | version = "3.11.1" 122 | source = "registry+https://github.com/rust-lang/crates.io-index" 123 | checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" 124 | 125 | [[package]] 126 | name = "bytes" 127 | version = "1.3.0" 128 | source = "registry+https://github.com/rust-lang/crates.io-index" 129 | checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" 130 | 131 | [[package]] 132 | name = "cc" 133 | version = "1.0.78" 134 | source = "registry+https://github.com/rust-lang/crates.io-index" 135 | checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" 136 | 137 | [[package]] 138 | name = "cfg-if" 139 | version = "1.0.0" 140 | source = "registry+https://github.com/rust-lang/crates.io-index" 141 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 142 | 143 | [[package]] 144 | name = "core-foundation" 145 | version = "0.9.3" 146 | source = "registry+https://github.com/rust-lang/crates.io-index" 147 | checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" 148 | dependencies = [ 149 | "core-foundation-sys", 150 | "libc", 151 | ] 152 | 153 | [[package]] 154 | name = "core-foundation-sys" 155 | version = "0.8.3" 156 | source = "registry+https://github.com/rust-lang/crates.io-index" 157 | checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" 158 | 159 | [[package]] 160 | name = "crc32fast" 161 | version = "1.3.2" 162 | source = "registry+https://github.com/rust-lang/crates.io-index" 163 | checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 164 | dependencies = [ 165 | "cfg-if", 166 | ] 167 | 168 | [[package]] 169 | name = "either" 170 | version = "1.8.0" 171 | source = "registry+https://github.com/rust-lang/crates.io-index" 172 | checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" 173 | 174 | [[package]] 175 | name = "fastrand" 176 | version = "1.8.0" 177 | source = "registry+https://github.com/rust-lang/crates.io-index" 178 | checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" 179 | dependencies = [ 180 | "instant", 181 | ] 182 | 183 | [[package]] 184 | name = "fixedbitset" 185 | version = "0.4.2" 186 | source = "registry+https://github.com/rust-lang/crates.io-index" 187 | checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" 188 | 189 | [[package]] 190 | name = "flate2" 191 | version = "1.0.25" 192 | source = "registry+https://github.com/rust-lang/crates.io-index" 193 | checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" 194 | dependencies = [ 195 | "crc32fast", 196 | "miniz_oxide", 197 | ] 198 | 199 | [[package]] 200 | name = "fnv" 201 | version = "1.0.7" 202 | source = "registry+https://github.com/rust-lang/crates.io-index" 203 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 204 | 205 | [[package]] 206 | name = "futures-channel" 207 | version = "0.3.25" 208 | source = "registry+https://github.com/rust-lang/crates.io-index" 209 | checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" 210 | dependencies = [ 211 | "futures-core", 212 | ] 213 | 214 | [[package]] 215 | name = "futures-core" 216 | version = "0.3.25" 217 | source = "registry+https://github.com/rust-lang/crates.io-index" 218 | checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" 219 | 220 | [[package]] 221 | name = "futures-sink" 222 | version = "0.3.25" 223 | source = "registry+https://github.com/rust-lang/crates.io-index" 224 | checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" 225 | 226 | [[package]] 227 | name = "futures-task" 228 | version = "0.3.25" 229 | source = "registry+https://github.com/rust-lang/crates.io-index" 230 | checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" 231 | 232 | [[package]] 233 | name = "futures-util" 234 | version = "0.3.25" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" 237 | dependencies = [ 238 | "futures-core", 239 | "futures-task", 240 | "pin-project-lite", 241 | "pin-utils", 242 | ] 243 | 244 | [[package]] 245 | name = "generator" 246 | version = "0.1.0" 247 | dependencies = [ 248 | "prost", 249 | "prost-types", 250 | "tonic", 251 | "tonic-build", 252 | ] 253 | 254 | [[package]] 255 | name = "getrandom" 256 | version = "0.2.8" 257 | source = "registry+https://github.com/rust-lang/crates.io-index" 258 | checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" 259 | dependencies = [ 260 | "cfg-if", 261 | "libc", 262 | "wasi", 263 | ] 264 | 265 | [[package]] 266 | name = "h2" 267 | version = "0.3.15" 268 | source = "registry+https://github.com/rust-lang/crates.io-index" 269 | checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" 270 | dependencies = [ 271 | "bytes", 272 | "fnv", 273 | "futures-core", 274 | "futures-sink", 275 | "futures-util", 276 | "http", 277 | "indexmap", 278 | "slab", 279 | "tokio", 280 | "tokio-util", 281 | "tracing", 282 | ] 283 | 284 | [[package]] 285 | name = "hashbrown" 286 | version = "0.12.3" 287 | source = "registry+https://github.com/rust-lang/crates.io-index" 288 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 289 | 290 | [[package]] 291 | name = "heck" 292 | version = "0.4.0" 293 | source = "registry+https://github.com/rust-lang/crates.io-index" 294 | checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" 295 | 296 | [[package]] 297 | name = "http" 298 | version = "0.2.8" 299 | source = "registry+https://github.com/rust-lang/crates.io-index" 300 | checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" 301 | dependencies = [ 302 | "bytes", 303 | "fnv", 304 | "itoa", 305 | ] 306 | 307 | [[package]] 308 | name = "http-body" 309 | version = "0.4.5" 310 | source = "registry+https://github.com/rust-lang/crates.io-index" 311 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 312 | dependencies = [ 313 | "bytes", 314 | "http", 315 | "pin-project-lite", 316 | ] 317 | 318 | [[package]] 319 | name = "http-range-header" 320 | version = "0.3.0" 321 | source = "registry+https://github.com/rust-lang/crates.io-index" 322 | checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" 323 | 324 | [[package]] 325 | name = "httparse" 326 | version = "1.8.0" 327 | source = "registry+https://github.com/rust-lang/crates.io-index" 328 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 329 | 330 | [[package]] 331 | name = "httpdate" 332 | version = "1.0.2" 333 | source = "registry+https://github.com/rust-lang/crates.io-index" 334 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 335 | 336 | [[package]] 337 | name = "hyper" 338 | version = "0.14.23" 339 | source = "registry+https://github.com/rust-lang/crates.io-index" 340 | checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" 341 | dependencies = [ 342 | "bytes", 343 | "futures-channel", 344 | "futures-core", 345 | "futures-util", 346 | "h2", 347 | "http", 348 | "http-body", 349 | "httparse", 350 | "httpdate", 351 | "itoa", 352 | "pin-project-lite", 353 | "socket2", 354 | "tokio", 355 | "tower-service", 356 | "tracing", 357 | "want", 358 | ] 359 | 360 | [[package]] 361 | name = "hyper-timeout" 362 | version = "0.4.1" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" 365 | dependencies = [ 366 | "hyper", 367 | "pin-project-lite", 368 | "tokio", 369 | "tokio-io-timeout", 370 | ] 371 | 372 | [[package]] 373 | name = "indexmap" 374 | version = "1.9.2" 375 | source = "registry+https://github.com/rust-lang/crates.io-index" 376 | checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" 377 | dependencies = [ 378 | "autocfg", 379 | "hashbrown", 380 | ] 381 | 382 | [[package]] 383 | name = "instant" 384 | version = "0.1.12" 385 | source = "registry+https://github.com/rust-lang/crates.io-index" 386 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 387 | dependencies = [ 388 | "cfg-if", 389 | ] 390 | 391 | [[package]] 392 | name = "itertools" 393 | version = "0.10.5" 394 | source = "registry+https://github.com/rust-lang/crates.io-index" 395 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 396 | dependencies = [ 397 | "either", 398 | ] 399 | 400 | [[package]] 401 | name = "itoa" 402 | version = "1.0.5" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" 405 | 406 | [[package]] 407 | name = "js-sys" 408 | version = "0.3.60" 409 | source = "registry+https://github.com/rust-lang/crates.io-index" 410 | checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" 411 | dependencies = [ 412 | "wasm-bindgen", 413 | ] 414 | 415 | [[package]] 416 | name = "lazy_static" 417 | version = "1.4.0" 418 | source = "registry+https://github.com/rust-lang/crates.io-index" 419 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 420 | 421 | [[package]] 422 | name = "libc" 423 | version = "0.2.139" 424 | source = "registry+https://github.com/rust-lang/crates.io-index" 425 | checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" 426 | 427 | [[package]] 428 | name = "log" 429 | version = "0.4.17" 430 | source = "registry+https://github.com/rust-lang/crates.io-index" 431 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 432 | dependencies = [ 433 | "cfg-if", 434 | ] 435 | 436 | [[package]] 437 | name = "matchit" 438 | version = "0.7.0" 439 | source = "registry+https://github.com/rust-lang/crates.io-index" 440 | checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" 441 | 442 | [[package]] 443 | name = "memchr" 444 | version = "2.5.0" 445 | source = "registry+https://github.com/rust-lang/crates.io-index" 446 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 447 | 448 | [[package]] 449 | name = "mime" 450 | version = "0.3.16" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" 453 | 454 | [[package]] 455 | name = "miniz_oxide" 456 | version = "0.6.2" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" 459 | dependencies = [ 460 | "adler", 461 | ] 462 | 463 | [[package]] 464 | name = "mio" 465 | version = "0.8.5" 466 | source = "registry+https://github.com/rust-lang/crates.io-index" 467 | checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" 468 | dependencies = [ 469 | "libc", 470 | "log", 471 | "wasi", 472 | "windows-sys", 473 | ] 474 | 475 | [[package]] 476 | name = "multimap" 477 | version = "0.8.3" 478 | source = "registry+https://github.com/rust-lang/crates.io-index" 479 | checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" 480 | 481 | [[package]] 482 | name = "once_cell" 483 | version = "1.17.0" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" 486 | 487 | [[package]] 488 | name = "openssl-probe" 489 | version = "0.1.5" 490 | source = "registry+https://github.com/rust-lang/crates.io-index" 491 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 492 | 493 | [[package]] 494 | name = "percent-encoding" 495 | version = "2.2.0" 496 | source = "registry+https://github.com/rust-lang/crates.io-index" 497 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 498 | 499 | [[package]] 500 | name = "petgraph" 501 | version = "0.6.2" 502 | source = "registry+https://github.com/rust-lang/crates.io-index" 503 | checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" 504 | dependencies = [ 505 | "fixedbitset", 506 | "indexmap", 507 | ] 508 | 509 | [[package]] 510 | name = "pin-project" 511 | version = "1.0.12" 512 | source = "registry+https://github.com/rust-lang/crates.io-index" 513 | checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" 514 | dependencies = [ 515 | "pin-project-internal", 516 | ] 517 | 518 | [[package]] 519 | name = "pin-project-internal" 520 | version = "1.0.12" 521 | source = "registry+https://github.com/rust-lang/crates.io-index" 522 | checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" 523 | dependencies = [ 524 | "proc-macro2", 525 | "quote", 526 | "syn", 527 | ] 528 | 529 | [[package]] 530 | name = "pin-project-lite" 531 | version = "0.2.9" 532 | source = "registry+https://github.com/rust-lang/crates.io-index" 533 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 534 | 535 | [[package]] 536 | name = "pin-utils" 537 | version = "0.1.0" 538 | source = "registry+https://github.com/rust-lang/crates.io-index" 539 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 540 | 541 | [[package]] 542 | name = "ppv-lite86" 543 | version = "0.2.17" 544 | source = "registry+https://github.com/rust-lang/crates.io-index" 545 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 546 | 547 | [[package]] 548 | name = "prettyplease" 549 | version = "0.1.23" 550 | source = "registry+https://github.com/rust-lang/crates.io-index" 551 | checksum = "e97e3215779627f01ee256d2fad52f3d95e8e1c11e9fc6fd08f7cd455d5d5c78" 552 | dependencies = [ 553 | "proc-macro2", 554 | "syn", 555 | ] 556 | 557 | [[package]] 558 | name = "proc-macro2" 559 | version = "1.0.49" 560 | source = "registry+https://github.com/rust-lang/crates.io-index" 561 | checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" 562 | dependencies = [ 563 | "unicode-ident", 564 | ] 565 | 566 | [[package]] 567 | name = "prost" 568 | version = "0.11.6" 569 | source = "registry+https://github.com/rust-lang/crates.io-index" 570 | checksum = "21dc42e00223fc37204bd4aa177e69420c604ca4a183209a8f9de30c6d934698" 571 | dependencies = [ 572 | "bytes", 573 | "prost-derive", 574 | ] 575 | 576 | [[package]] 577 | name = "prost-build" 578 | version = "0.11.6" 579 | source = "registry+https://github.com/rust-lang/crates.io-index" 580 | checksum = "a3f8ad728fb08fe212df3c05169e940fbb6d9d16a877ddde14644a983ba2012e" 581 | dependencies = [ 582 | "bytes", 583 | "heck", 584 | "itertools", 585 | "lazy_static", 586 | "log", 587 | "multimap", 588 | "petgraph", 589 | "prettyplease", 590 | "prost", 591 | "prost-types", 592 | "regex", 593 | "syn", 594 | "tempfile", 595 | "which", 596 | ] 597 | 598 | [[package]] 599 | name = "prost-derive" 600 | version = "0.11.6" 601 | source = "registry+https://github.com/rust-lang/crates.io-index" 602 | checksum = "8bda8c0881ea9f722eb9629376db3d0b903b462477c1aafcb0566610ac28ac5d" 603 | dependencies = [ 604 | "anyhow", 605 | "itertools", 606 | "proc-macro2", 607 | "quote", 608 | "syn", 609 | ] 610 | 611 | [[package]] 612 | name = "prost-types" 613 | version = "0.11.6" 614 | source = "registry+https://github.com/rust-lang/crates.io-index" 615 | checksum = "a5e0526209433e96d83d750dd81a99118edbc55739e7e61a46764fd2ad537788" 616 | dependencies = [ 617 | "bytes", 618 | "prost", 619 | ] 620 | 621 | [[package]] 622 | name = "quote" 623 | version = "1.0.23" 624 | source = "registry+https://github.com/rust-lang/crates.io-index" 625 | checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" 626 | dependencies = [ 627 | "proc-macro2", 628 | ] 629 | 630 | [[package]] 631 | name = "rand" 632 | version = "0.8.5" 633 | source = "registry+https://github.com/rust-lang/crates.io-index" 634 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 635 | dependencies = [ 636 | "libc", 637 | "rand_chacha", 638 | "rand_core", 639 | ] 640 | 641 | [[package]] 642 | name = "rand_chacha" 643 | version = "0.3.1" 644 | source = "registry+https://github.com/rust-lang/crates.io-index" 645 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 646 | dependencies = [ 647 | "ppv-lite86", 648 | "rand_core", 649 | ] 650 | 651 | [[package]] 652 | name = "rand_core" 653 | version = "0.6.4" 654 | source = "registry+https://github.com/rust-lang/crates.io-index" 655 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 656 | dependencies = [ 657 | "getrandom", 658 | ] 659 | 660 | [[package]] 661 | name = "redox_syscall" 662 | version = "0.2.16" 663 | source = "registry+https://github.com/rust-lang/crates.io-index" 664 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 665 | dependencies = [ 666 | "bitflags", 667 | ] 668 | 669 | [[package]] 670 | name = "regex" 671 | version = "1.7.1" 672 | source = "registry+https://github.com/rust-lang/crates.io-index" 673 | checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" 674 | dependencies = [ 675 | "regex-syntax", 676 | ] 677 | 678 | [[package]] 679 | name = "regex-syntax" 680 | version = "0.6.28" 681 | source = "registry+https://github.com/rust-lang/crates.io-index" 682 | checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" 683 | 684 | [[package]] 685 | name = "remove_dir_all" 686 | version = "0.5.3" 687 | source = "registry+https://github.com/rust-lang/crates.io-index" 688 | checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" 689 | dependencies = [ 690 | "winapi", 691 | ] 692 | 693 | [[package]] 694 | name = "ring" 695 | version = "0.16.20" 696 | source = "registry+https://github.com/rust-lang/crates.io-index" 697 | checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" 698 | dependencies = [ 699 | "cc", 700 | "libc", 701 | "once_cell", 702 | "spin", 703 | "untrusted", 704 | "web-sys", 705 | "winapi", 706 | ] 707 | 708 | [[package]] 709 | name = "rustls" 710 | version = "0.20.7" 711 | source = "registry+https://github.com/rust-lang/crates.io-index" 712 | checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" 713 | dependencies = [ 714 | "log", 715 | "ring", 716 | "sct", 717 | "webpki", 718 | ] 719 | 720 | [[package]] 721 | name = "rustls-native-certs" 722 | version = "0.6.2" 723 | source = "registry+https://github.com/rust-lang/crates.io-index" 724 | checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" 725 | dependencies = [ 726 | "openssl-probe", 727 | "rustls-pemfile", 728 | "schannel", 729 | "security-framework", 730 | ] 731 | 732 | [[package]] 733 | name = "rustls-pemfile" 734 | version = "1.0.2" 735 | source = "registry+https://github.com/rust-lang/crates.io-index" 736 | checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" 737 | dependencies = [ 738 | "base64 0.21.0", 739 | ] 740 | 741 | [[package]] 742 | name = "rustversion" 743 | version = "1.0.11" 744 | source = "registry+https://github.com/rust-lang/crates.io-index" 745 | checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" 746 | 747 | [[package]] 748 | name = "schannel" 749 | version = "0.1.21" 750 | source = "registry+https://github.com/rust-lang/crates.io-index" 751 | checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" 752 | dependencies = [ 753 | "windows-sys", 754 | ] 755 | 756 | [[package]] 757 | name = "sct" 758 | version = "0.7.0" 759 | source = "registry+https://github.com/rust-lang/crates.io-index" 760 | checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" 761 | dependencies = [ 762 | "ring", 763 | "untrusted", 764 | ] 765 | 766 | [[package]] 767 | name = "security-framework" 768 | version = "2.7.0" 769 | source = "registry+https://github.com/rust-lang/crates.io-index" 770 | checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" 771 | dependencies = [ 772 | "bitflags", 773 | "core-foundation", 774 | "core-foundation-sys", 775 | "libc", 776 | "security-framework-sys", 777 | ] 778 | 779 | [[package]] 780 | name = "security-framework-sys" 781 | version = "2.6.1" 782 | source = "registry+https://github.com/rust-lang/crates.io-index" 783 | checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" 784 | dependencies = [ 785 | "core-foundation-sys", 786 | "libc", 787 | ] 788 | 789 | [[package]] 790 | name = "serde" 791 | version = "1.0.152" 792 | source = "registry+https://github.com/rust-lang/crates.io-index" 793 | checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" 794 | 795 | [[package]] 796 | name = "slab" 797 | version = "0.4.7" 798 | source = "registry+https://github.com/rust-lang/crates.io-index" 799 | checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" 800 | dependencies = [ 801 | "autocfg", 802 | ] 803 | 804 | [[package]] 805 | name = "socket2" 806 | version = "0.4.7" 807 | source = "registry+https://github.com/rust-lang/crates.io-index" 808 | checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" 809 | dependencies = [ 810 | "libc", 811 | "winapi", 812 | ] 813 | 814 | [[package]] 815 | name = "spin" 816 | version = "0.5.2" 817 | source = "registry+https://github.com/rust-lang/crates.io-index" 818 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 819 | 820 | [[package]] 821 | name = "syn" 822 | version = "1.0.107" 823 | source = "registry+https://github.com/rust-lang/crates.io-index" 824 | checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" 825 | dependencies = [ 826 | "proc-macro2", 827 | "quote", 828 | "unicode-ident", 829 | ] 830 | 831 | [[package]] 832 | name = "sync_wrapper" 833 | version = "0.1.1" 834 | source = "registry+https://github.com/rust-lang/crates.io-index" 835 | checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" 836 | 837 | [[package]] 838 | name = "tempfile" 839 | version = "3.3.0" 840 | source = "registry+https://github.com/rust-lang/crates.io-index" 841 | checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" 842 | dependencies = [ 843 | "cfg-if", 844 | "fastrand", 845 | "libc", 846 | "redox_syscall", 847 | "remove_dir_all", 848 | "winapi", 849 | ] 850 | 851 | [[package]] 852 | name = "tokio" 853 | version = "1.24.1" 854 | source = "registry+https://github.com/rust-lang/crates.io-index" 855 | checksum = "1d9f76183f91ecfb55e1d7d5602bd1d979e38a3a522fe900241cf195624d67ae" 856 | dependencies = [ 857 | "autocfg", 858 | "bytes", 859 | "libc", 860 | "memchr", 861 | "mio", 862 | "pin-project-lite", 863 | "socket2", 864 | "tokio-macros", 865 | "windows-sys", 866 | ] 867 | 868 | [[package]] 869 | name = "tokio-io-timeout" 870 | version = "1.2.0" 871 | source = "registry+https://github.com/rust-lang/crates.io-index" 872 | checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" 873 | dependencies = [ 874 | "pin-project-lite", 875 | "tokio", 876 | ] 877 | 878 | [[package]] 879 | name = "tokio-macros" 880 | version = "1.8.2" 881 | source = "registry+https://github.com/rust-lang/crates.io-index" 882 | checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" 883 | dependencies = [ 884 | "proc-macro2", 885 | "quote", 886 | "syn", 887 | ] 888 | 889 | [[package]] 890 | name = "tokio-rustls" 891 | version = "0.23.4" 892 | source = "registry+https://github.com/rust-lang/crates.io-index" 893 | checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" 894 | dependencies = [ 895 | "rustls", 896 | "tokio", 897 | "webpki", 898 | ] 899 | 900 | [[package]] 901 | name = "tokio-stream" 902 | version = "0.1.11" 903 | source = "registry+https://github.com/rust-lang/crates.io-index" 904 | checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" 905 | dependencies = [ 906 | "futures-core", 907 | "pin-project-lite", 908 | "tokio", 909 | ] 910 | 911 | [[package]] 912 | name = "tokio-util" 913 | version = "0.7.4" 914 | source = "registry+https://github.com/rust-lang/crates.io-index" 915 | checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" 916 | dependencies = [ 917 | "bytes", 918 | "futures-core", 919 | "futures-sink", 920 | "pin-project-lite", 921 | "tokio", 922 | "tracing", 923 | ] 924 | 925 | [[package]] 926 | name = "tonic" 927 | version = "0.8.3" 928 | source = "registry+https://github.com/rust-lang/crates.io-index" 929 | checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" 930 | dependencies = [ 931 | "async-stream", 932 | "async-trait", 933 | "axum", 934 | "base64 0.13.1", 935 | "bytes", 936 | "flate2", 937 | "futures-core", 938 | "futures-util", 939 | "h2", 940 | "http", 941 | "http-body", 942 | "hyper", 943 | "hyper-timeout", 944 | "percent-encoding", 945 | "pin-project", 946 | "prost", 947 | "prost-derive", 948 | "rustls-native-certs", 949 | "rustls-pemfile", 950 | "tokio", 951 | "tokio-rustls", 952 | "tokio-stream", 953 | "tokio-util", 954 | "tower", 955 | "tower-layer", 956 | "tower-service", 957 | "tracing", 958 | "tracing-futures", 959 | ] 960 | 961 | [[package]] 962 | name = "tonic-build" 963 | version = "0.8.4" 964 | source = "registry+https://github.com/rust-lang/crates.io-index" 965 | checksum = "5bf5e9b9c0f7e0a7c027dcfaba7b2c60816c7049171f679d99ee2ff65d0de8c4" 966 | dependencies = [ 967 | "prettyplease", 968 | "proc-macro2", 969 | "prost-build", 970 | "quote", 971 | "syn", 972 | ] 973 | 974 | [[package]] 975 | name = "tower" 976 | version = "0.4.13" 977 | source = "registry+https://github.com/rust-lang/crates.io-index" 978 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 979 | dependencies = [ 980 | "futures-core", 981 | "futures-util", 982 | "indexmap", 983 | "pin-project", 984 | "pin-project-lite", 985 | "rand", 986 | "slab", 987 | "tokio", 988 | "tokio-util", 989 | "tower-layer", 990 | "tower-service", 991 | "tracing", 992 | ] 993 | 994 | [[package]] 995 | name = "tower-http" 996 | version = "0.3.5" 997 | source = "registry+https://github.com/rust-lang/crates.io-index" 998 | checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" 999 | dependencies = [ 1000 | "bitflags", 1001 | "bytes", 1002 | "futures-core", 1003 | "futures-util", 1004 | "http", 1005 | "http-body", 1006 | "http-range-header", 1007 | "pin-project-lite", 1008 | "tower", 1009 | "tower-layer", 1010 | "tower-service", 1011 | ] 1012 | 1013 | [[package]] 1014 | name = "tower-layer" 1015 | version = "0.3.2" 1016 | source = "registry+https://github.com/rust-lang/crates.io-index" 1017 | checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" 1018 | 1019 | [[package]] 1020 | name = "tower-service" 1021 | version = "0.3.2" 1022 | source = "registry+https://github.com/rust-lang/crates.io-index" 1023 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 1024 | 1025 | [[package]] 1026 | name = "tracing" 1027 | version = "0.1.37" 1028 | source = "registry+https://github.com/rust-lang/crates.io-index" 1029 | checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" 1030 | dependencies = [ 1031 | "cfg-if", 1032 | "log", 1033 | "pin-project-lite", 1034 | "tracing-attributes", 1035 | "tracing-core", 1036 | ] 1037 | 1038 | [[package]] 1039 | name = "tracing-attributes" 1040 | version = "0.1.23" 1041 | source = "registry+https://github.com/rust-lang/crates.io-index" 1042 | checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" 1043 | dependencies = [ 1044 | "proc-macro2", 1045 | "quote", 1046 | "syn", 1047 | ] 1048 | 1049 | [[package]] 1050 | name = "tracing-core" 1051 | version = "0.1.30" 1052 | source = "registry+https://github.com/rust-lang/crates.io-index" 1053 | checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" 1054 | dependencies = [ 1055 | "once_cell", 1056 | ] 1057 | 1058 | [[package]] 1059 | name = "tracing-futures" 1060 | version = "0.2.5" 1061 | source = "registry+https://github.com/rust-lang/crates.io-index" 1062 | checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" 1063 | dependencies = [ 1064 | "pin-project", 1065 | "tracing", 1066 | ] 1067 | 1068 | [[package]] 1069 | name = "try-lock" 1070 | version = "0.2.4" 1071 | source = "registry+https://github.com/rust-lang/crates.io-index" 1072 | checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" 1073 | 1074 | [[package]] 1075 | name = "unicode-ident" 1076 | version = "1.0.6" 1077 | source = "registry+https://github.com/rust-lang/crates.io-index" 1078 | checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" 1079 | 1080 | [[package]] 1081 | name = "untrusted" 1082 | version = "0.7.1" 1083 | source = "registry+https://github.com/rust-lang/crates.io-index" 1084 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" 1085 | 1086 | [[package]] 1087 | name = "want" 1088 | version = "0.3.0" 1089 | source = "registry+https://github.com/rust-lang/crates.io-index" 1090 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 1091 | dependencies = [ 1092 | "log", 1093 | "try-lock", 1094 | ] 1095 | 1096 | [[package]] 1097 | name = "wasi" 1098 | version = "0.11.0+wasi-snapshot-preview1" 1099 | source = "registry+https://github.com/rust-lang/crates.io-index" 1100 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1101 | 1102 | [[package]] 1103 | name = "wasm-bindgen" 1104 | version = "0.2.83" 1105 | source = "registry+https://github.com/rust-lang/crates.io-index" 1106 | checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" 1107 | dependencies = [ 1108 | "cfg-if", 1109 | "wasm-bindgen-macro", 1110 | ] 1111 | 1112 | [[package]] 1113 | name = "wasm-bindgen-backend" 1114 | version = "0.2.83" 1115 | source = "registry+https://github.com/rust-lang/crates.io-index" 1116 | checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" 1117 | dependencies = [ 1118 | "bumpalo", 1119 | "log", 1120 | "once_cell", 1121 | "proc-macro2", 1122 | "quote", 1123 | "syn", 1124 | "wasm-bindgen-shared", 1125 | ] 1126 | 1127 | [[package]] 1128 | name = "wasm-bindgen-macro" 1129 | version = "0.2.83" 1130 | source = "registry+https://github.com/rust-lang/crates.io-index" 1131 | checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" 1132 | dependencies = [ 1133 | "quote", 1134 | "wasm-bindgen-macro-support", 1135 | ] 1136 | 1137 | [[package]] 1138 | name = "wasm-bindgen-macro-support" 1139 | version = "0.2.83" 1140 | source = "registry+https://github.com/rust-lang/crates.io-index" 1141 | checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" 1142 | dependencies = [ 1143 | "proc-macro2", 1144 | "quote", 1145 | "syn", 1146 | "wasm-bindgen-backend", 1147 | "wasm-bindgen-shared", 1148 | ] 1149 | 1150 | [[package]] 1151 | name = "wasm-bindgen-shared" 1152 | version = "0.2.83" 1153 | source = "registry+https://github.com/rust-lang/crates.io-index" 1154 | checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" 1155 | 1156 | [[package]] 1157 | name = "web-sys" 1158 | version = "0.3.60" 1159 | source = "registry+https://github.com/rust-lang/crates.io-index" 1160 | checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" 1161 | dependencies = [ 1162 | "js-sys", 1163 | "wasm-bindgen", 1164 | ] 1165 | 1166 | [[package]] 1167 | name = "webpki" 1168 | version = "0.22.0" 1169 | source = "registry+https://github.com/rust-lang/crates.io-index" 1170 | checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" 1171 | dependencies = [ 1172 | "ring", 1173 | "untrusted", 1174 | ] 1175 | 1176 | [[package]] 1177 | name = "which" 1178 | version = "4.3.0" 1179 | source = "registry+https://github.com/rust-lang/crates.io-index" 1180 | checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" 1181 | dependencies = [ 1182 | "either", 1183 | "libc", 1184 | "once_cell", 1185 | ] 1186 | 1187 | [[package]] 1188 | name = "winapi" 1189 | version = "0.3.9" 1190 | source = "registry+https://github.com/rust-lang/crates.io-index" 1191 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1192 | dependencies = [ 1193 | "winapi-i686-pc-windows-gnu", 1194 | "winapi-x86_64-pc-windows-gnu", 1195 | ] 1196 | 1197 | [[package]] 1198 | name = "winapi-i686-pc-windows-gnu" 1199 | version = "0.4.0" 1200 | source = "registry+https://github.com/rust-lang/crates.io-index" 1201 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1202 | 1203 | [[package]] 1204 | name = "winapi-x86_64-pc-windows-gnu" 1205 | version = "0.4.0" 1206 | source = "registry+https://github.com/rust-lang/crates.io-index" 1207 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1208 | 1209 | [[package]] 1210 | name = "windows-sys" 1211 | version = "0.42.0" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" 1214 | dependencies = [ 1215 | "windows_aarch64_gnullvm", 1216 | "windows_aarch64_msvc", 1217 | "windows_i686_gnu", 1218 | "windows_i686_msvc", 1219 | "windows_x86_64_gnu", 1220 | "windows_x86_64_gnullvm", 1221 | "windows_x86_64_msvc", 1222 | ] 1223 | 1224 | [[package]] 1225 | name = "windows_aarch64_gnullvm" 1226 | version = "0.42.0" 1227 | source = "registry+https://github.com/rust-lang/crates.io-index" 1228 | checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" 1229 | 1230 | [[package]] 1231 | name = "windows_aarch64_msvc" 1232 | version = "0.42.0" 1233 | source = "registry+https://github.com/rust-lang/crates.io-index" 1234 | checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" 1235 | 1236 | [[package]] 1237 | name = "windows_i686_gnu" 1238 | version = "0.42.0" 1239 | source = "registry+https://github.com/rust-lang/crates.io-index" 1240 | checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" 1241 | 1242 | [[package]] 1243 | name = "windows_i686_msvc" 1244 | version = "0.42.0" 1245 | source = "registry+https://github.com/rust-lang/crates.io-index" 1246 | checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" 1247 | 1248 | [[package]] 1249 | name = "windows_x86_64_gnu" 1250 | version = "0.42.0" 1251 | source = "registry+https://github.com/rust-lang/crates.io-index" 1252 | checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" 1253 | 1254 | [[package]] 1255 | name = "windows_x86_64_gnullvm" 1256 | version = "0.42.0" 1257 | source = "registry+https://github.com/rust-lang/crates.io-index" 1258 | checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" 1259 | 1260 | [[package]] 1261 | name = "windows_x86_64_msvc" 1262 | version = "0.42.0" 1263 | source = "registry+https://github.com/rust-lang/crates.io-index" 1264 | checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" 1265 | -------------------------------------------------------------------------------- /generator/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "generator" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | prost = "0.11" 8 | prost-types = "0.11" 9 | tonic = { version = "0.8.0", features = ["tls", "tls-roots", "gzip"]} 10 | tonic-build = { version = "0.8.0", features = [] } 11 | -------------------------------------------------------------------------------- /generator/src/main.rs: -------------------------------------------------------------------------------- 1 | fn main() -> Result<(), Box> { 2 | tonic_build::configure() 3 | .build_client(true) 4 | .build_server(false) 5 | .out_dir("../src") 6 | .compile( 7 | &[ 8 | "../investAPI/src/docs/contracts/instruments.proto", 9 | "../investAPI/src/docs/contracts/marketdata.proto", 10 | "../investAPI/src/docs/contracts/operations.proto", 11 | "../investAPI/src/docs/contracts/orders.proto", 12 | "../investAPI/src/docs/contracts/sandbox.proto", 13 | "../investAPI/src/docs/contracts/stoporders.proto", 14 | "../investAPI/src/docs/contracts/users.proto", 15 | ], 16 | &["../investAPI/src/docs/contracts/"], 17 | )?; 18 | 19 | std::fs::rename( 20 | "../src/tinkoff.public.invest.api.contract.v1.rs", 21 | "../src/tcs.rs", 22 | )?; 23 | 24 | Ok(()) 25 | } 26 | -------------------------------------------------------------------------------- /src/google.api.rs: -------------------------------------------------------------------------------- 1 | /// An indicator of the behavior of a given field (for example, that a field 2 | /// is required in requests, or given as output but ignored as input). 3 | /// This **does not** change the behavior in protocol buffers itself; it only 4 | /// denotes the behavior and may affect how API tooling handles the field. 5 | /// 6 | /// Note: This enum **may** receive new values in the future. 7 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] 8 | #[repr(i32)] 9 | pub enum FieldBehavior { 10 | /// Conventional default for enums. Do not use this. 11 | Unspecified = 0, 12 | /// Specifically denotes a field as optional. 13 | /// While all fields in protocol buffers are optional, this may be specified 14 | /// for emphasis if appropriate. 15 | Optional = 1, 16 | /// Denotes a field as required. 17 | /// This indicates that the field **must** be provided as part of the request, 18 | /// and failure to do so will cause an error (usually `INVALID_ARGUMENT`). 19 | Required = 2, 20 | /// Denotes a field as output only. 21 | /// This indicates that the field is provided in responses, but including the 22 | /// field in a request does nothing (the server *must* ignore it and 23 | /// *must not* throw an error as a result of the field's presence). 24 | OutputOnly = 3, 25 | /// Denotes a field as input only. 26 | /// This indicates that the field is provided in requests, and the 27 | /// corresponding field is not included in output. 28 | InputOnly = 4, 29 | /// Denotes a field as immutable. 30 | /// This indicates that the field may be set once in a request to create a 31 | /// resource, but may not be changed thereafter. 32 | Immutable = 5, 33 | /// Denotes that a (repeated) field is an unordered list. 34 | /// This indicates that the service may provide the elements of the list 35 | /// in any arbitrary order, rather than the order the user originally 36 | /// provided. Additionally, the list's order may or may not be stable. 37 | UnorderedList = 6, 38 | /// Denotes that this field returns a non-empty default value if not set. 39 | /// This indicates that if the user provides the empty value in a request, 40 | /// a non-empty value will be returned. The user will not be aware of what 41 | /// non-empty value to expect. 42 | NonEmptyDefault = 7, 43 | } 44 | impl FieldBehavior { 45 | /// String value of the enum field names used in the ProtoBuf definition. 46 | /// 47 | /// The values are not transformed in any way and thus are considered stable 48 | /// (if the ProtoBuf definition does not change) and safe for programmatic use. 49 | pub fn as_str_name(&self) -> &'static str { 50 | match self { 51 | FieldBehavior::Unspecified => "FIELD_BEHAVIOR_UNSPECIFIED", 52 | FieldBehavior::Optional => "OPTIONAL", 53 | FieldBehavior::Required => "REQUIRED", 54 | FieldBehavior::OutputOnly => "OUTPUT_ONLY", 55 | FieldBehavior::InputOnly => "INPUT_ONLY", 56 | FieldBehavior::Immutable => "IMMUTABLE", 57 | FieldBehavior::UnorderedList => "UNORDERED_LIST", 58 | FieldBehavior::NonEmptyDefault => "NON_EMPTY_DEFAULT", 59 | } 60 | } 61 | /// Creates an enum from field names used in the ProtoBuf definition. 62 | pub fn from_str_name(value: &str) -> ::core::option::Option { 63 | match value { 64 | "FIELD_BEHAVIOR_UNSPECIFIED" => Some(Self::Unspecified), 65 | "OPTIONAL" => Some(Self::Optional), 66 | "REQUIRED" => Some(Self::Required), 67 | "OUTPUT_ONLY" => Some(Self::OutputOnly), 68 | "INPUT_ONLY" => Some(Self::InputOnly), 69 | "IMMUTABLE" => Some(Self::Immutable), 70 | "UNORDERED_LIST" => Some(Self::UnorderedList), 71 | "NON_EMPTY_DEFAULT" => Some(Self::NonEmptyDefault), 72 | _ => None, 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/google.protobuf.rs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | use tcs::{ 2 | instruments_service_client::InstrumentsServiceClient, 3 | market_data_service_client::MarketDataServiceClient, 4 | market_data_stream_service_client::MarketDataStreamServiceClient, 5 | operations_service_client::OperationsServiceClient, 6 | orders_stream_service_client::OrdersStreamServiceClient, 7 | sandbox_service_client::SandboxServiceClient, 8 | stop_orders_service_client::StopOrdersServiceClient, users_service_client::UsersServiceClient, 9 | }; 10 | use tonic::{ 11 | codegen::InterceptedService, 12 | service::Interceptor, 13 | transport::{self, Channel, ClientTlsConfig}, 14 | Status, 15 | }; 16 | 17 | #[path = "google.api.rs"] 18 | pub mod google_api; 19 | pub mod tcs; 20 | 21 | #[derive(Debug)] 22 | pub struct TinkoffInvestService { 23 | token: String, 24 | } 25 | 26 | #[derive(Debug)] 27 | pub struct DefaultInterceptor { 28 | token: String, 29 | } 30 | 31 | impl Interceptor for DefaultInterceptor { 32 | fn call(&mut self, request: tonic::Request<()>) -> Result, Status> { 33 | let mut req = request; 34 | req.metadata_mut().append( 35 | "authorization", 36 | format!("bearer {}", self.token).parse().unwrap(), 37 | ); 38 | req.metadata_mut().append( 39 | "x-tracking-id", 40 | uuid::Uuid::new_v4().to_string().parse().unwrap(), 41 | ); 42 | req.metadata_mut() 43 | .append("x-app-name", "ovr.tinkoffInvestRust".parse().unwrap()); 44 | 45 | Ok(req) 46 | } 47 | } 48 | 49 | #[derive(Debug)] 50 | pub enum TIError { 51 | /// Error's that originate from the client or server; 52 | TransportError(transport::Error), 53 | /// A gRPC status describing the result of an RPC call. 54 | StatusError(tonic::Status), 55 | } 56 | 57 | impl From for TIError { 58 | fn from(e: transport::Error) -> Self { 59 | TIError::TransportError(e) 60 | } 61 | } 62 | 63 | impl From for TIError { 64 | fn from(e: tonic::Status) -> Self { 65 | TIError::StatusError(e) 66 | } 67 | } 68 | 69 | pub type TIResult = std::result::Result; 70 | 71 | impl TinkoffInvestService { 72 | pub fn new(token: String) -> Self { 73 | Self { token } 74 | } 75 | 76 | pub async fn create_channel(&self) -> TIResult { 77 | let tls = ClientTlsConfig::new(); 78 | 79 | let channel = Channel::from_static("https://invest-public-api.tinkoff.ru:443/") 80 | .tls_config(tls)? 81 | .connect() 82 | .await?; 83 | 84 | Ok(channel) 85 | } 86 | 87 | pub async fn users( 88 | &self, 89 | channel: Channel, 90 | ) -> TIResult>> { 91 | let client = UsersServiceClient::with_interceptor( 92 | channel, 93 | DefaultInterceptor { 94 | token: self.token.clone(), 95 | }, 96 | ); 97 | 98 | Ok(client) 99 | } 100 | 101 | pub async fn operations( 102 | &self, 103 | channel: Channel, 104 | ) -> TIResult>> { 105 | let client = OperationsServiceClient::with_interceptor( 106 | channel, 107 | DefaultInterceptor { 108 | token: self.token.clone(), 109 | }, 110 | ); 111 | 112 | Ok(client) 113 | } 114 | 115 | pub async fn instruments( 116 | &self, 117 | channel: Channel, 118 | ) -> TIResult>> { 119 | let client = InstrumentsServiceClient::with_interceptor( 120 | channel, 121 | DefaultInterceptor { 122 | token: self.token.clone(), 123 | }, 124 | ); 125 | 126 | Ok(client) 127 | } 128 | 129 | pub async fn marketdata( 130 | &self, 131 | channel: Channel, 132 | ) -> TIResult>> { 133 | let client = MarketDataServiceClient::with_interceptor( 134 | channel, 135 | DefaultInterceptor { 136 | token: self.token.clone(), 137 | }, 138 | ); 139 | 140 | Ok(client) 141 | } 142 | 143 | pub async fn marketdata_stream( 144 | &self, 145 | channel: Channel, 146 | ) -> TIResult>> 147 | { 148 | let client = MarketDataStreamServiceClient::with_interceptor( 149 | channel, 150 | DefaultInterceptor { 151 | token: self.token.clone(), 152 | }, 153 | ); 154 | 155 | Ok(client) 156 | } 157 | 158 | pub async fn orders_stream( 159 | &self, 160 | channel: Channel, 161 | ) -> TIResult>> { 162 | let client = OrdersStreamServiceClient::with_interceptor( 163 | channel, 164 | DefaultInterceptor { 165 | token: self.token.clone(), 166 | }, 167 | ); 168 | 169 | Ok(client) 170 | } 171 | 172 | pub async fn stop_orders( 173 | &self, 174 | channel: Channel, 175 | ) -> TIResult>> { 176 | let client = StopOrdersServiceClient::with_interceptor( 177 | channel, 178 | DefaultInterceptor { 179 | token: self.token.clone(), 180 | }, 181 | ); 182 | 183 | Ok(client) 184 | } 185 | 186 | pub async fn sandbox( 187 | &self, 188 | channel: Channel, 189 | ) -> TIResult>> { 190 | let client = SandboxServiceClient::with_interceptor( 191 | channel, 192 | DefaultInterceptor { 193 | token: self.token.clone(), 194 | }, 195 | ); 196 | 197 | Ok(client) 198 | } 199 | } 200 | -------------------------------------------------------------------------------- /tests/go.rs: -------------------------------------------------------------------------------- 1 | mod tests { 2 | use std::env; 3 | 4 | use tinkoff_invest_api::{TIResult, TinkoffInvestService}; 5 | 6 | #[tokio::test] 7 | async fn test_get_accounts() -> TIResult<()> { 8 | let service = TinkoffInvestService::new(env::var("TINKOFF_SDK_TESTING_ENV").unwrap()); 9 | let channel = service.create_channel().await?; 10 | let mut users = service.users(channel).await?; 11 | 12 | let accounts = users 13 | .get_accounts(tonic::Request::new( 14 | tinkoff_invest_api::tcs::GetAccountsRequest {}, 15 | )) 16 | .await?; 17 | 18 | println!("Response {:?}", accounts); 19 | 20 | Ok(()) 21 | } 22 | } 23 | --------------------------------------------------------------------------------