-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCargo.toml
146 lines (125 loc) · 5.34 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
[workspace]
resolver = "2"
members = [
"queng_common/*",
"queng_components/*",
"queng_extensions/*",
"queng_integration/data/*",
"queng_macros/*",
"queng_system_ims_client/*",
"queng_system_ims_config/*",
"queng_system_ims_data/*/*",
"queng_sbe/*",
"queng_template/*",
"queng_traits/*",
"queng_utils_test/*",
]
exclude = [
"queng_sbe/sbe_schema",
]
[workspace.package]
edition = "2024"
rust-version = "1.85.0"
readme = "README.md"
repository = "https://github.com/marvin-hansen/iggy-streaming-system"
authors = ["Marvin Hansen <[email protected]>"]
license = "Apache-2.0"
# Linting with clippy
[workspace.lints.clippy]
all = "warn"
# Linting with rust
[workspace.lints.rust]
# Warnings
deprecated-safe = "warn"
deprecated_safe_2024 = "warn"
[workspace.dependencies]
# ==============
# Internal Aliases
# ==============
# Clients
ims_data_client = { path = "queng_system_ims_client/ims_data_client" }
# Configs
ims_iggy_config = { path = "queng_system_ims_config/ims_iggy_config" }
# Common
common_config = { path = "queng_common/common_config" }
common_data_bar = { path = "queng_common/common_data_bar" }
common_env = { path = "queng_common/common_env" }
common_errors = { path = "queng_common/common_errors" }
common_exchange = { path = "queng_common/common_exchange" }
common_ims = { path = "queng_common/common_ims" }
common_platform = { path = "queng_common/common_platform" }
common_sbe_errors = { path = "queng_common/common_sbe_errors" }
common_service = { path = "queng_common/common_service" }
# Components
config_manager = { path = "queng_components/config_manager" }
environment_manager = { path = "queng_components/environment_manager" }
# Extensions
client_error_ext = { path = "queng_extensions/client_error_ext" }
common_data_bar_ext = { path = "queng_extensions/common_data_bar_ext" }
#cow_ext = { path = "queng_extensions/cow_ext" }
data_error_ext = { path = "queng_extensions/data_error_ext" }
iggy_producer_ext = { path = "queng_extensions/iggy_producer_ext" }
# Integration
# Data integration
binance_coin_futures_data_integration = { path = "queng_integration/data/binance_coin_futures_data_integration" }
binance_coin_futures_testnet_data_integration = { path = "queng_integration/data/binance_coin_futures_testnet_data_integration" }
binance_core_data_integration = { path = "queng_integration/data/binance_core_data_integration" }
binance_spot_data_integration = { path = "queng_integration/data/binance_spot_data_integration" }
binance_spot_testnet_data_integration = { path = "queng_integration/data/binance_spot_testnet_data_integration" }
binance_usd_futures_data_integration = { path = "queng_integration/data/binance_usd_futures_data_integration" }
binance_usd_futures_testnet_data_integration = { path = "queng_integration/data/binance_usd_futures_testnet_data_integration" }
# Macros
data_integration_macro = { path = "queng_macros/data_integration_macro" }
# SBE
sbe_bindings = { path = "queng_sbe/sbe_bindings" }
sbe_messages_client = { path = "queng_sbe/sbe_messages_client" }
sbe_messages_control = { path = "queng_sbe/sbe_messages_control" }
sbe_messages_data = { path = "queng_sbe/sbe_messages_data" }
sbe_types = { path = "queng_sbe/sbe_types" }
# Template for microservices in /queng_system_ims_data
ims_data_service = { path = "queng_template/ims_data_service" }
# Traits
trait_data_integration = { path = "queng_traits/trait_data_integration" }
# Utils for integration testing
iggy_test_utils = { path = "queng_utils_test/iggy_test_utils" }
# ==============
# External crates
# ==============
# Proc Macro Dependencies
async-trait = { version = "0.1" }
enum_dispatch = { version = "0.3" }
trait-variant = { version = "0.1" }
quote = "1.0"
syn = { version = "2.0", features = ["full", "extra-traits"] }
# Dependencies for integration tests
service_utils = { version = "0.2" }
# Regular dependencies
bytes = { version = "1.8" }
chrono = { version = "0.4.38", features = ["serde"] }
rust_decimal = { version = "1.36" }
futures = { version = "0.3" }
futures-util = { version = "0.3" }
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json", "blocking", "gzip"] }
# Work in progress & not yet published
iggy = { git = "https://github.com/iggy-rs/iggy.git", branch = "Epilogue-Part-2" }
mimalloc = { version = "0.1" }
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0" }
rustls = { version = "0.23", features = ["ring"] }
tokio = { version = "1.43", default-features = false, features = ["macros", "net", "rt-multi-thread", "signal", "time"] }
tokio-util = { version = "0.7", default-features = false }
tokio-tungstenite = { version = "0.26", features = ["rustls-tls-webpki-roots"] }
warp = { version = "0.3", default-features = false }
# Optimize all crates
[profile.release]
opt-level = 3
strip = true # Automatically strip debug symbols from the binary
lto = true # Enable Link Time Optimization (LTO)
codegen-units = 1 # Reduce Parallel Code Generation Units to Increase Optimization
# There's a Cargo feature named profile-overrides
# that lets you override the optimization level of dependencies.
# https://docs.rust-embedded.org/book/unsorted/speed-vs-size.html
[profile.release.package."*"]
opt-level = 3
strip = 'debuginfo' # Automatically strip debug infos from the binary to reduce size
codegen-units = 1 # Reduce Parallel Code Generation Units to Increase Optimization