Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
133 lines (115 loc) · 3.98 KB
/
Copy pathCargo.toml
File metadata and controls
133 lines (115 loc) · 3.98 KB
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
[workspace]
resolver = "2"
members = [
"crates/redisctl-core",
"crates/redisctl",
"crates/redisctl-mcp",
]
default-members = [
"crates/redisctl",
"crates/redisctl-mcp",
]
# External dependencies (not part of workspace)
[workspace.dependencies.files-sdk]
version = "0.4.1"
[workspace.package]
version = "0.12.1"
edition = "2024"
rust-version = "1.90"
authors = ["Josh Rotenberg <josh.rotenberg@redis.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/redis/redisctl"
homepage = "https://github.com/redis/redisctl"
documentation = "https://docs.rs/redisctl"
# Config for 'dist'
[workspace.metadata.dist]
# The preferred dist version to use in CI (Cargo.toml SemVer syntax)
cargo-dist-version = "0.32.0"
# CI backends to support
ci = "github"
# The installers to generate for each app
installers = ["shell", "powershell"]
# Target platforms to build apps for (Rust target-triple syntax)
targets = ["aarch64-apple-darwin", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-pc-windows-msvc"]
# Which actions to run on pull requests
pr-run-mode = "plan"
# Whether dist should create a Github Release or use an existing draft
create-release = true
# Path that installers should place binaries in
install-path = "CARGO_HOME"
# Whether to install an updater program
install-updater = false
# Keep the Redis Homebrew tap update outside the generated release workflow.
publish-jobs = ["./update-homebrew"]
github-custom-job-permissions = { "update-homebrew" = { contents = "read" } }
[workspace.metadata.dist.github-action-commits]
# Dependabot updates the generated workflow references. Copy those revisions
# here and rerun `dist generate --mode ci` so this remains the source of truth.
"actions/checkout" = "3d3c42e5aac5ba805825da76410c181273ba90b1" # v7.0.1
"actions/upload-artifact" = "043fb46d1a93c77aae656e7c1c64a875d1fc6a0a" # v7.0.1
"actions/download-artifact" = "3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c" # v8.0.1
[workspace.dependencies]
# Core dependencies
anyhow = "1.0"
thiserror = "2.0"
tokio = { version = "1.40", features = ["full"] }
tokio-stream = "0.1"
futures = "0.3"
serde = { version = "1.0", features = ["derive"] }
tar = "0.4"
flate2 = "1.0"
serde_json = "1.0"
serde_urlencoded = "0.7"
clap = { version = "4.5", features = ["derive", "env", "string"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
async-trait = "0.1"
# HTTP and APIs
reqwest = { version = "0.13", default-features = false, features = ["json", "rustls", "multipart"] }
rustls = { version = "0.23.32", default-features = false, features = ["aws_lc_rs", "std"] }
# Standards-compliant OAuth2/OIDC (device grant, auth-code+PKCE, refresh); rustls to match reqwest.
oauth2 = { version = "5", default-features = false, features = ["reqwest", "rustls-tls"] }
url = "2.5"
base64 = "0.22"
urlencoding = "2.1"
chrono = { version = "0.4", features = ["serde"] }
# Configuration
config = "0.15"
toml = "0.9"
directories = "6.0"
# Terminal and output
serde_yaml = "0.9"
csv = "1.3"
jpx-core = "0.2.1"
# Password input
rpassword = "7.4"
# Tower and resilience
tower = { version = "0.5", features = ["util", "timeout", "buffer", "ready-cache", "limit"] }
# Secure credential storage
keyring = { version = "3.6", features = ["apple-native", "windows-native", "linux-native"] }
# Testing
tempfile = "3.8"
wiremock = "0.6"
mockall = "0.13"
serial_test = "3.1"
pretty_assertions = "1.4"
# Redis client
redis = { version = "0.27", features = ["tokio-comp", "tokio-rustls-comp", "connection-manager", "cluster-async"] }
# External crates (git for dev, version required for crates.io publish)
redis-cloud = { version = "0.11" }
redis-enterprise = { version = "0.10" }
# Windows CI workaround - ensure these are available in workspace
shellexpand = "3.1"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true
panic = "abort"
[profile.dev]
opt-level = 0
debug = true
# The profile that 'dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"