Rework Cargo.toml dependencies (#3322)

* Use workspace variables from cargo, coming with rustc
[1.64](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1640-2022-09-22)

See
https://doc.rust-lang.org/nightly/cargo/reference/workspaces.html#the-package-table
and
https://doc.rust-lang.org/nightly/cargo/reference/workspaces.html#the-dependencies-table
sections.

Now, all dependencies in all non-root `Cargo.toml` files are defined as 
```
clap.workspace = true
```

sometimes, when extra features are needed, as 
```
bytes = {workspace = true, features = ['serde'] }
```

With the actual declarations (with shared features and version
numbers/file paths/etc.) in the root Cargo.toml.
Features are additive:

https://doc.rust-lang.org/nightly/cargo/reference/specifying-dependencies.html#inheriting-a-dependency-from-a-workspace

* Uses the mechanism above to set common, 2021, edition and license across the
workspace

* Mechanically bumps a few dependencies

* Updates hakari format, as it suggested:
```
work/neon/neon kb/cargo-templated ❯ cargo hakari generate
info: no changes detected
info: new hakari format version available: 3 (current: 2)
(add or update `dep-format-version = "3"` in hakari.toml, then run `cargo hakari generate && cargo hakari manage-deps`)
```
This commit is contained in:
Kirill Bulatov
2023-01-13 18:13:34 +02:00
committed by GitHub
parent 16baa91b2b
commit bce4233d3a
20 changed files with 774 additions and 678 deletions

View File

@@ -4,7 +4,7 @@
hakari-package = "workspace_hack" hakari-package = "workspace_hack"
# Format for `workspace-hack = ...` lines in other Cargo.tomls. Requires cargo-hakari 0.9.8 or above. # Format for `workspace-hack = ...` lines in other Cargo.tomls. Requires cargo-hakari 0.9.8 or above.
dep-format-version = "2" dep-format-version = "3"
# Setting workspace.resolver = "2" in the root Cargo.toml is HIGHLY recommended. # Setting workspace.resolver = "2" in the root Cargo.toml is HIGHLY recommended.
# Hakari works much better with the new feature resolver. # Hakari works much better with the new feature resolver.

507
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -10,6 +10,141 @@ members = [
"libs/*", "libs/*",
] ]
[workspace.package]
edition = "2021"
license = "Apache-2.0"
## All dependency versions, used in the project
[workspace.dependencies]
anyhow = { version = "1.0", features = ["backtrace"] }
async-stream = "0.3"
async-trait = "0.1"
atty = "0.2.14"
aws-config = { version = "0.51.0", default-features = false, features=["rustls"] }
aws-sdk-s3 = "0.21.0"
aws-smithy-http = "0.51.0"
aws-types = "0.51.0"
base64 = "0.13.0"
bincode = "1.3"
bindgen = "0.61"
bstr = "1.0"
byteorder = "1.4"
bytes = "1.0"
chrono = { version = "0.4", default-features = false, features = ["clock"] }
clap = "4.0"
close_fds = "0.3.2"
comfy-table = "6.1"
const_format = "0.2"
crc32c = "0.6"
crossbeam-utils = "0.8.5"
fail = "0.5.0"
fs2 = "0.4.3"
futures = "0.3"
futures-core = "0.3"
futures-util = "0.3"
git-version = "0.3"
hashbrown = "0.13"
hex = "0.4"
hex-literal = "0.3"
hmac = "0.12.1"
humantime = "2.1"
humantime-serde = "1.1.1"
hyper = "0.14"
hyper-tungstenite = "0.9"
itertools = "0.10"
jsonwebtoken = "8"
libc = "0.2"
md5 = "0.7.0"
memoffset = "0.8"
nix = "0.26"
notify = "5.0.0"
num-traits = "0.2.15"
once_cell = "1.13"
parking_lot = "0.12"
pin-project-lite = "0.2"
prometheus = {version = "0.13", default_features=false, features = ["process"]} # removes protobuf dependency
prost = "0.11"
rand = "0.8"
regex = "1.4"
reqwest = { version = "0.11", default-features = false, features = ["rustls-tls"] }
routerify = "3"
rstar = "0.9.3"
rustls = "0.20"
rustls-pemfile = "1"
rustls-split = "0.3"
scopeguard = "1.1"
sentry = { version = "0.29", default-features = false, features = ["backtrace", "contexts", "panic", "rustls", "reqwest" ] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1"
serde_with = "2.0"
sha2 = "0.10.2"
signal-hook = "0.3"
socket2 = "0.4.4"
strum = "0.24"
strum_macros = "0.24"
svg_fmt = "0.4.1"
tar = "0.4"
thiserror = "1.0"
tls-listener = { version = "0.6", features = ["rustls", "hyper-h1"] }
tokio = { version = "1.17", features = ["macros"] }
tokio-postgres-rustls = "0.9.0"
tokio-rustls = "0.23"
tokio-stream = "0.1"
tokio-util = { version = "0.7", features = ["io"] }
toml = "0.5"
toml_edit = { version = "0.17", features = ["easy"] }
tonic = {version = "0.8", features = ["tls", "tls-roots"]}
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
url = "2.2"
uuid = { version = "1.2", features = ["v4", "serde"] }
walkdir = "2.3.2"
webpki-roots = "0.22.5"
x509-parser = "0.14"
## TODO replace this with tracing
env_logger = "0.10"
log = "0.4"
## TODO switch when the new release is made
amplify_num = { git = "https://github.com/rust-amplify/rust-amplify.git", tag = "v4.0.0-beta.1" }
## Libraries from neondatabase/ git forks, ideally with changes to be upstreamed
postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" }
postgres-protocol = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" }
postgres-types = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" }
tokio-postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" }
tokio-tar = { git = "https://github.com/neondatabase/tokio-tar.git", rev="404df61437de0feef49ba2ccdbdd94eb8ad6e142" }
## Local libraries
metrics = { version = "0.1", path = "./libs/metrics/" }
pageserver_api = { version = "0.1", path = "./libs/pageserver_api/" }
postgres_connection = { version = "0.1", path = "./libs/postgres_connection/" }
postgres_ffi = { version = "0.1", path = "./libs/postgres_ffi/" }
pq_proto = { version = "0.1", path = "./libs/pq_proto/" }
remote_storage = { version = "0.1", path = "./libs/remote_storage/" }
safekeeper_api = { version = "0.1", path = "./libs/safekeeper_api" }
storage_broker = { version = "0.1", path = "./storage_broker/" } # Note: main broker code is inside the binary crate, so linking with the library shouldn't be heavy.
tenant_size_model = { version = "0.1", path = "./libs/tenant_size_model/" }
utils = { version = "0.1", path = "./libs/utils/" }
## Common library dependency
workspace_hack = { version = "0.1", path = "./workspace_hack/" }
## Build dependencies
criterion = "0.4"
rcgen = "0.10"
rstest = "0.16"
tempfile = "3.2"
tonic-build = "0.8"
# This is only needed for proxy's tests.
# TODO: we should probably fork `tokio-postgres-rustls` instead.
[patch.crates-io]
tokio-postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" }
################# Binary contents sections
[profile.release] [profile.release]
# This is useful for profiling and, to some extent, debug. # This is useful for profiling and, to some extent, debug.
# Besides, debug info should not affect the performance. # Besides, debug info should not affect the performance.
@@ -70,9 +205,3 @@ inherits = "release"
debug = false # true = 2 = all symbols, 1 = line only debug = false # true = 2 = all symbols, 1 = line only
opt-level = "z" opt-level = "z"
lto = true lto = true
# This is only needed for proxy's tests.
# TODO: we should probably fork `tokio-postgres-rustls` instead.
[patch.crates-io]
tokio-postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" }

View File

@@ -1,24 +1,25 @@
[package] [package]
name = "compute_tools" name = "compute_tools"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
chrono = { version = "0.4", default-features = false, features = ["clock"] } chrono.workspace = true
clap = "4.0" clap.workspace = true
env_logger = "0.9" env_logger.workspace = true
futures = "0.3.13" futures.workspace = true
hyper = { version = "0.14", features = ["full"] } hyper = { workspace = true, features = ["full"] }
log = { version = "0.4", features = ["std", "serde"] } log = { workspace = true, features = ["std", "serde"] }
notify = "5.0.0" notify.workspace = true
postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } postgres.workspace = true
regex = "1" regex.workspace = true
serde = { version = "1.0", features = ["derive"] } serde.workspace = true
serde_json = "1" serde_json.workspace = true
tar = "0.4" tar.workspace = true
tokio = { version = "1.17", features = ["macros", "rt", "rt-multi-thread"] } tokio = { workspace = true, features = ["rt", "rt-multi-thread"] }
tokio-postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } tokio-postgres.workspace = true
url = "2.2.2" url.workspace = true
workspace_hack = { version = "0.1", path = "../workspace_hack" }
workspace_hack.workspace = true

View File

@@ -1,32 +1,31 @@
[package] [package]
name = "control_plane" name = "control_plane"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
clap = "4.0" clap.workspace = true
comfy-table = "6.1" comfy-table.workspace = true
git-version = "0.3.5" git-version.workspace = true
nix = "0.25" nix.workspace = true
once_cell = "1.13.0" once_cell.workspace = true
postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev = "43e6db254a97fdecbce33d8bc0890accfd74495e" } postgres.workspace = true
regex = "1" regex.workspace = true
reqwest = { version = "0.11", default-features = false, features = ["blocking", "json", "rustls-tls"] } reqwest = { workspace = true, features = ["blocking", "json"] }
serde = { version = "1.0", features = ["derive"] } serde.workspace = true
serde_with = "2.0" serde_with.workspace = true
tar = "0.4.38" tar.workspace = true
thiserror = "1" thiserror.workspace = true
toml = "0.5" toml.workspace = true
url = "2.2.2" url.workspace = true
# Note: Do not directly depend on pageserver or safekeeper; use pageserver_api or safekeeper_api # Note: Do not directly depend on pageserver or safekeeper; use pageserver_api or safekeeper_api
# instead, so that recompile times are better. # instead, so that recompile times are better.
pageserver_api = { path = "../libs/pageserver_api" } pageserver_api.workspace = true
postgres_connection = { path = "../libs/postgres_connection" } safekeeper_api.workspace = true
safekeeper_api = { path = "../libs/safekeeper_api" } postgres_connection.workspace = true
# Note: main broker code is inside the binary crate, so linking with the library shouldn't be heavy. storage_broker.workspace = true
storage_broker = { version = "0.1", path = "../storage_broker" } utils.workspace = true
utils = { path = "../libs/utils" }
workspace_hack = { version = "0.1", path = "../workspace_hack" } workspace_hack.workspace = true

View File

@@ -1,11 +1,12 @@
[package] [package]
name = "metrics" name = "metrics"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
[dependencies] [dependencies]
prometheus = {version = "0.13", default_features=false, features = ["process"]} # removes protobuf dependency prometheus.workspace = true
libc = "0.2" libc.workspace = true
once_cell = "1.13.0" once_cell.workspace = true
workspace_hack = { version = "0.1", path = "../../workspace_hack" }
workspace_hack.workspace = true

View File

@@ -1,17 +1,17 @@
[package] [package]
name = "pageserver_api" name = "pageserver_api"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
[dependencies] [dependencies]
serde = { version = "1.0", features = ["derive"] } serde.workspace = true
serde_with = "2.0" serde_with.workspace = true
const_format = "0.2.21" const_format.workspace = true
anyhow = { version = "1.0", features = ["backtrace"] } anyhow.workspace = true
bytes = "1.0.1" bytes.workspace = true
byteorder = "1.4.3" byteorder.workspace = true
utils.workspace = true
postgres_ffi.workspace = true
utils = { path = "../utils" } workspace_hack.workspace = true
postgres_ffi = { path = "../postgres_ffi" }
workspace_hack = { version = "0.1", path = "../../workspace_hack" }

View File

@@ -1,18 +1,17 @@
[package] [package]
name = "postgres_connection" name = "postgres_connection"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
itertools = "0.10.3" itertools.workspace = true
postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev = "43e6db254a97fdecbce33d8bc0890accfd74495e" } postgres.workspace = true
tokio-postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } tokio-postgres.workspace = true
url = "2.2.2" url.workspace = true
workspace_hack = { version = "0.1", path = "../../workspace_hack" }
workspace_hack.workspace = true
[dev-dependencies] [dev-dependencies]
once_cell = "1.13.0" once_cell.workspace = true

View File

@@ -1,30 +1,31 @@
[package] [package]
name = "postgres_ffi" name = "postgres_ffi"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
[dependencies] [dependencies]
rand = "0.8.3" rand.workspace = true
regex = "1.4.5" regex.workspace = true
bytes = "1.0.1" bytes.workspace = true
byteorder = "1.4.3" byteorder.workspace = true
anyhow = "1.0" anyhow.workspace = true
crc32c = "0.6.0" crc32c.workspace = true
hex = "0.4.3" hex.workspace = true
once_cell = "1.13.0" once_cell.workspace = true
log = "0.4.14" log.workspace = true
memoffset = "0.7" memoffset.workspace = true
thiserror = "1.0" thiserror.workspace = true
serde = { version = "1.0", features = ["derive"] } serde.workspace = true
utils = { path = "../utils" } utils.workspace = true
workspace_hack = { version = "0.1", path = "../../workspace_hack" }
workspace_hack.workspace = true
[dev-dependencies] [dev-dependencies]
env_logger = "0.9" env_logger.workspace = true
postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } postgres.workspace = true
wal_craft = { path = "wal_craft" } wal_craft = { path = "wal_craft" }
[build-dependencies] [build-dependencies]
anyhow = "1.0" anyhow.workspace = true
bindgen = "0.61" bindgen.workspace = true

View File

@@ -1,17 +1,17 @@
[package] [package]
name = "wal_craft" name = "wal_craft"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
clap = "4.0" clap.workspace = true
env_logger = "0.9" env_logger.workspace = true
log = "0.4" log.workspace = true
once_cell = "1.13.0" once_cell.workspace = true
postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } postgres.workspace = true
postgres_ffi = { path = "../" } postgres_ffi.workspace = true
tempfile = "3.2" tempfile.workspace = true
workspace_hack = { version = "0.1", path = "../../../workspace_hack" }
workspace_hack.workspace = true

View File

@@ -1,18 +1,18 @@
[package] [package]
name = "pq_proto" name = "pq_proto"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
bytes = "1.0.1" bytes.workspace = true
pin-project-lite = "0.2.7" pin-project-lite.workspace = true
postgres-protocol = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } postgres-protocol.workspace = true
rand = "0.8.3" rand.workspace = true
serde = { version = "1.0", features = ["derive"] } serde.workspace = true
tokio = { version = "1.17", features = ["macros"] } tokio.workspace = true
tracing = "0.1" tracing.workspace = true
thiserror = "1.0" thiserror.workspace = true
workspace_hack = { version = "0.1", path = "../../workspace_hack" } workspace_hack.workspace = true

View File

@@ -1,28 +1,28 @@
[package] [package]
name = "remote_storage" name = "remote_storage"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
[dependencies] [dependencies]
anyhow = { version = "1.0", features = ["backtrace"] } anyhow.workspace = true
async-trait = "0.1" async-trait.workspace = true
metrics = { version = "0.1", path = "../metrics" } once_cell.workspace = true
utils = { version = "0.1", path = "../utils" } aws-smithy-http.workspace = true
once_cell = "1.13.0" aws-types.workspace = true
aws-smithy-http = "0.51.0" aws-config.workspace = true
aws-types = "0.51.0" aws-sdk-s3.workspace = true
aws-config = { version = "0.51.0", default-features = false, features=["rustls"] } hyper = { workspace = true, features = ["stream"] }
aws-sdk-s3 = "0.21.0" serde.workspace = true
hyper = { version = "0.14", features = ["stream"] } serde_json.workspace = true
serde = { version = "1.0", features = ["derive"] } tokio = { workspace = true, features = ["sync", "fs", "io-util"] }
serde_json = "1" tokio-util.workspace = true
tokio = { version = "1.17", features = ["sync", "macros", "fs", "io-util"] } toml_edit.workspace = true
tokio-util = { version = "0.7", features = ["io"] } tracing.workspace = true
toml_edit = { version = "0.14", features = ["easy"] } metrics.workspace = true
tracing = "0.1.27" utils.workspace = true
workspace_hack = { version = "0.1", path = "../../workspace_hack" } workspace_hack.workspace = true
[dev-dependencies] [dev-dependencies]
tempfile = "3.2" tempfile.workspace = true

View File

@@ -1,13 +1,13 @@
[package] [package]
name = "safekeeper_api" name = "safekeeper_api"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
[dependencies] [dependencies]
serde = { version = "1.0", features = ["derive"] } serde.workspace = true
serde_with = "2.0" serde_with.workspace = true
const_format = "0.2.21" const_format.workspace = true
utils.workspace = true
utils = { path = "../utils" } workspace_hack.workspace = true
workspace_hack = { version = "0.1", path = "../../workspace_hack" }

View File

@@ -1,10 +1,11 @@
[package] [package]
name = "tenant_size_model" name = "tenant_size_model"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
publish = false publish = false
license = "Apache-2.0" license.workspace = true
[dependencies] [dependencies]
workspace_hack = { version = "0.1", path = "../../workspace_hack" } anyhow.workspace = true
anyhow = "1.0.68"
workspace_hack.workspace = true

View File

@@ -1,48 +1,49 @@
[package] [package]
name = "utils" name = "utils"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
[dependencies] [dependencies]
sentry = { version = "0.29.0", default-features = false, features = ["backtrace", "contexts", "panic", "rustls", "reqwest" ] } sentry.workspace = true
async-trait = "0.1" async-trait.workspace = true
anyhow = "1.0" anyhow.workspace = true
bincode = "1.3" bincode.workspace = true
bytes = "1.0.1" bytes.workspace = true
hyper = { version = "0.14.7", features = ["full"] } hyper = { workspace = true, features = ["full"] }
routerify = "3" routerify.workspace = true
serde = { version = "1.0", features = ["derive"] } serde.workspace = true
serde_json = "1" serde_json.workspace = true
thiserror = "1.0" thiserror.workspace = true
tokio = { version = "1.17", features = ["macros"]} tokio.workspace = true
tokio-rustls = "0.23" tokio-rustls.workspace = true
tracing = "0.1" tracing.workspace = true
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } tracing-subscriber = { workspace = true, features = ["json"] }
nix = "0.25" nix.workspace = true
signal-hook = "0.3.10" signal-hook.workspace = true
rand = "0.8.3" rand.workspace = true
jsonwebtoken = "8" jsonwebtoken.workspace = true
hex = { version = "0.4.3", features = ["serde"] } hex = { workspace = true, features = ["serde"] }
rustls = "0.20.2" rustls.workspace = true
rustls-split = "0.3.0" rustls-split.workspace = true
git-version = "0.3.5" git-version.workspace = true
serde_with = "2.0" serde_with.workspace = true
once_cell = "1.13.0" once_cell.workspace = true
strum = "0.24" strum.workspace = true
strum_macros = "0.24" strum_macros.workspace = true
metrics = { path = "../metrics" } metrics.workspace = true
pq_proto = { path = "../pq_proto" } pq_proto.workspace = true
workspace_hack = { version = "0.1", path = "../../workspace_hack" }
workspace_hack.workspace = true
[dev-dependencies] [dev-dependencies]
byteorder = "1.4.3" byteorder.workspace = true
bytes = "1.0.1" bytes.workspace = true
hex-literal = "0.3" hex-literal.workspace = true
tempfile = "3.2" tempfile.workspace = true
criterion = "0.4" criterion.workspace = true
rustls-pemfile = "1" rustls-pemfile.workspace = true
[[bench]] [[bench]]
name = "benchmarks" name = "benchmarks"

View File

@@ -1,8 +1,8 @@
[package] [package]
name = "pageserver" name = "pageserver"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
[features] [features]
default = [] default = []
@@ -11,68 +11,67 @@ default = []
testing = ["fail/failpoints"] testing = ["fail/failpoints"]
[dependencies] [dependencies]
amplify_num = { git = "https://github.com/hlinnaka/rust-amplify.git", branch = "unsigned-int-perf" } amplify_num.workspace = true
anyhow = { version = "1.0", features = ["backtrace"] } anyhow.workspace = true
async-stream = "0.3" async-stream.workspace = true
async-trait = "0.1" async-trait.workspace = true
byteorder = "1.4.3" byteorder.workspace = true
bytes = "1.0.1" bytes.workspace = true
chrono = { version = "0.4.23", default-features = false, features = ["clock", "serde"] } chrono = { workspace = true, features = ["serde"] }
clap = { version = "4.0", features = ["string"] } clap = { workspace = true, features = ["string"] }
close_fds = "0.3.2" close_fds.workspace = true
const_format = "0.2.21" const_format.workspace = true
crc32c = "0.6.0" crc32c.workspace = true
crossbeam-utils = "0.8.5" crossbeam-utils.workspace = true
fail = "0.5.0" fail.workspace = true
futures = "0.3.13" futures.workspace = true
git-version = "0.3.5" git-version.workspace = true
hex = "0.4.3" hex.workspace = true
humantime = "2.1.0" humantime.workspace = true
humantime-serde = "1.1.1" humantime-serde.workspace = true
hyper = "0.14" hyper.workspace = true
itertools = "0.10.3" itertools.workspace = true
nix = "0.25" nix.workspace = true
num-traits = "0.2.15" num-traits.workspace = true
once_cell = "1.13.0" once_cell.workspace = true
pin-project-lite = "0.2.7" pin-project-lite.workspace = true
postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } postgres.workspace = true
postgres-protocol = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } postgres-protocol.workspace = true
postgres-types = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } postgres-types.workspace = true
rand = "0.8.3" rand.workspace = true
regex = "1.4.5" regex.workspace = true
rstar = "0.9.3" rstar.workspace = true
scopeguard = "1.1.0" scopeguard.workspace = true
serde = { version = "1.0", features = ["derive"] } serde.workspace = true
serde_json = { version = "1.0", features = ["raw_value"] } serde_json = { workspace = true, features = ["raw_value"] }
serde_with = "2.0" serde_with.workspace = true
signal-hook = "0.3.10" signal-hook.workspace = true
svg_fmt = "0.4.1" svg_fmt.workspace = true
tokio-tar = { git = "https://github.com/neondatabase/tokio-tar.git", rev="404df61437de0feef49ba2ccdbdd94eb8ad6e142" } tokio-tar.workspace = true
thiserror = "1.0" thiserror.workspace = true
tokio = { version = "1.17", features = ["process", "sync", "macros", "fs", "rt", "io-util", "time"] } tokio = { workspace = true, features = ["process", "sync", "fs", "rt", "io-util", "time"] }
tokio-postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } tokio-postgres.workspace = true
tokio-util = { version = "0.7.3", features = ["io", "io-util"] } tokio-util.workspace = true
toml_edit = { version = "0.14", features = ["easy"] } toml_edit.workspace = true
tracing = "0.1.36" tracing.workspace = true
url = "2" url.workspace = true
walkdir = "2.3.2" walkdir.workspace = true
metrics.workspace = true
metrics = { path = "../libs/metrics" } pageserver_api.workspace = true
pageserver_api = { path = "../libs/pageserver_api" } postgres_connection.workspace = true
postgres_connection = { path = "../libs/postgres_connection" } postgres_ffi.workspace = true
postgres_ffi = { path = "../libs/postgres_ffi" } pq_proto.workspace = true
pq_proto = { path = "../libs/pq_proto" } remote_storage.workspace = true
remote_storage = { path = "../libs/remote_storage" } storage_broker.workspace = true
storage_broker = { version = "0.1", path = "../storage_broker" } tenant_size_model.workspace = true
tenant_size_model = { path = "../libs/tenant_size_model" } utils.workspace = true
utils = { path = "../libs/utils" } workspace_hack.workspace = true
workspace_hack = { version = "0.1", path = "../workspace_hack" } reqwest.workspace = true
reqwest = { version = "0.11", default-features = false, features = ["rustls-tls"] }
[dev-dependencies] [dev-dependencies]
criterion = "0.4" criterion.workspace = true
hex-literal = "0.3" hex-literal.workspace = true
tempfile = "3.2" tempfile.workspace = true
[[bench]] [[bench]]
name = "bench_layer_map" name = "bench_layer_map"

View File

@@ -1,58 +1,58 @@
[package] [package]
name = "proxy" name = "proxy"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
atty = "0.2.14" atty.workspace = true
base64 = "0.13.0" base64.workspace = true
bstr = "1.0" bstr.workspace = true
bytes = { version = "1.0.1", features = ['serde'] } bytes = {workspace = true, features = ['serde'] }
clap = "4.0" clap.workspace = true
futures = "0.3.13" futures.workspace = true
git-version = "0.3.5" git-version.workspace = true
hashbrown = "0.12" hashbrown.workspace = true
hex = "0.4.3" hex.workspace = true
hmac = "0.12.1" hmac.workspace = true
hyper = "0.14" hyper.workspace = true
hyper-tungstenite = "0.8.1" hyper-tungstenite.workspace = true
itertools = "0.10.3" itertools.workspace = true
md5 = "0.7.0" md5.workspace = true
once_cell = "1.13.0" once_cell.workspace = true
parking_lot = "0.12" parking_lot.workspace = true
pin-project-lite = "0.2.7" pin-project-lite.workspace = true
rand = "0.8.3" rand.workspace = true
regex = "1.4.5" regex.workspace = true
reqwest = { version = "0.11", default-features = false, features = [ "json", "rustls-tls" ] } reqwest = { workspace = true, features = [ "json" ] }
routerify = "3" routerify.workspace = true
rustls = "0.20.0" rustls.workspace = true
rustls-pemfile = "1" rustls-pemfile.workspace = true
scopeguard = "1.1.0" scopeguard.workspace = true
serde = "1" serde.workspace = true
serde_json = "1" serde_json.workspace = true
sha2 = "0.10.2" sha2.workspace = true
socket2 = "0.4.4" socket2.workspace = true
thiserror = "1.0.30" thiserror.workspace = true
tokio = { version = "1.17", features = ["macros"] } tokio.workspace = true
tokio-postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } tokio-postgres.workspace = true
tokio-rustls = "0.23.0" tokio-rustls.workspace = true
tls-listener = { version = "0.5.1", features = ["rustls", "hyper-h1"] } tls-listener.workspace = true
tracing = "0.1.36" tracing.workspace = true
tracing-subscriber = { version = "0.3", features = ["env-filter"] } tracing-subscriber.workspace = true
url = "2.2.2" url.workspace = true
uuid = { version = "1.2", features = ["v4", "serde"] } uuid.workspace = true
webpki-roots = "0.22.5" webpki-roots.workspace = true
x509-parser = "0.14" x509-parser.workspace = true
metrics.workspace = true
pq_proto.workspace = true
utils.workspace = true
metrics = { path = "../libs/metrics" } workspace_hack.workspace = true
pq_proto = { path = "../libs/pq_proto" }
utils = { path = "../libs/utils" }
workspace_hack = { version = "0.1", path = "../workspace_hack" }
[dev-dependencies] [dev-dependencies]
async-trait = "0.1" async-trait.workspace = true
rcgen = "0.10" rcgen.workspace = true
rstest = "0.15" rstest.workspace = true
tokio-postgres-rustls = "0.9.0" tokio-postgres-rustls.workspace = true

View File

@@ -1,48 +1,48 @@
[package] [package]
name = "safekeeper" name = "safekeeper"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
[dependencies] [dependencies]
async-stream = "0.3" async-stream.workspace = true
anyhow = "1.0" anyhow.workspace = true
async-trait = "0.1" async-trait.workspace = true
byteorder = "1.4.3" byteorder.workspace = true
bytes = "1.0.1" bytes.workspace = true
clap = { version = "4.0", features = ["derive"] } clap = { workspace = true, features = ["derive"] }
const_format = "0.2.21" const_format.workspace = true
crc32c = "0.6.0" crc32c.workspace = true
fs2 = "0.4.3" fs2.workspace = true
git-version = "0.3.5" git-version.workspace = true
hex = "0.4.3" hex.workspace = true
humantime = "2.1.0" humantime.workspace = true
hyper = "0.14" hyper.workspace = true
nix = "0.25" nix.workspace = true
once_cell = "1.13.0" once_cell.workspace = true
parking_lot = "0.12.1" parking_lot.workspace = true
postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } postgres.workspace = true
postgres-protocol = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } postgres-protocol.workspace = true
regex = "1.4.5" regex.workspace = true
serde = { version = "1.0", features = ["derive"] } serde.workspace = true
serde_json = "1" serde_json.workspace = true
serde_with = "2.0" serde_with.workspace = true
signal-hook = "0.3.10" signal-hook.workspace = true
thiserror = "1" thiserror.workspace = true
tokio = { version = "1.17", features = ["macros", "fs"] } tokio = { workspace = true, features = ["fs"] }
tokio-postgres = { git = "https://github.com/neondatabase/rust-postgres.git", rev="43e6db254a97fdecbce33d8bc0890accfd74495e" } tokio-postgres.workspace = true
toml_edit = { version = "0.14", features = ["easy"] } toml_edit.workspace = true
tracing = "0.1.27" tracing.workspace = true
url = "2.2.2" url.workspace = true
metrics.workspace = true
postgres_ffi.workspace = true
pq_proto.workspace = true
remote_storage.workspace = true
safekeeper_api.workspace = true
storage_broker.workspace = true
utils.workspace = true
metrics = { path = "../libs/metrics" } workspace_hack.workspace = true
postgres_ffi = { path = "../libs/postgres_ffi" }
pq_proto = { path = "../libs/pq_proto" }
remote_storage = { path = "../libs/remote_storage" }
safekeeper_api = { path = "../libs/safekeeper_api" }
storage_broker = { version = "0.1", path = "../storage_broker" }
utils = { path = "../libs/utils" }
workspace_hack = { version = "0.1", path = "../workspace_hack" }
[dev-dependencies] [dev-dependencies]
tempfile = "3.2" tempfile.workspace = true

View File

@@ -1,38 +1,38 @@
[package] [package]
name = "storage_broker" name = "storage_broker"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition.workspace = true
license = "Apache-2.0" license.workspace = true
[features] [features]
bench = [] bench = []
[dependencies] [dependencies]
anyhow = "1.0" anyhow.workspace = true
async-stream = "0.3" async-stream.workspace = true
bytes = "1.0" bytes.workspace = true
clap = { version = "4.0", features = ["derive"] } clap = { workspace = true, features = ["derive"] }
const_format = "0.2.21" const_format.workspace = true
futures = "0.3" futures.workspace = true
futures-core = "0.3" futures-core.workspace = true
futures-util = "0.3" futures-util.workspace = true
git-version = "0.3.5" git-version.workspace = true
humantime = "2.1.0" humantime.workspace = true
hyper = {version = "0.14.14", features = ["full"]} hyper = { workspace = true, features = ["full"] }
once_cell = "1.13.0" once_cell.workspace = true
parking_lot = "0.12" parking_lot.workspace = true
prost = "0.11" prost.workspace = true
tonic = {version = "0.8", features = ["tls", "tls-roots"]} tonic.workspace = true
tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } tokio = { workspace = true, features = ["rt-multi-thread"] }
tokio-stream = "0.1" tokio-stream.workspace = true
tracing = "0.1.27" tracing.workspace = true
metrics.workspace = true
utils.workspace = true
metrics = { path = "../libs/metrics" } workspace_hack.workspace = true
utils = { path = "../libs/utils" }
workspace_hack = { version = "0.1", path = "../workspace_hack" }
[build-dependencies] [build-dependencies]
tonic-build = "0.8" tonic-build.workspace = true
[[bench]] [[bench]]
name = "rps" name = "rps"

View File

@@ -13,54 +13,54 @@ publish = false
### BEGIN HAKARI SECTION ### BEGIN HAKARI SECTION
[dependencies] [dependencies]
anyhow = { version = "1", features = ["backtrace", "std"] } anyhow = { version = "1", features = ["backtrace"] }
bytes = { version = "1", features = ["serde", "std"] } bytes = { version = "1", features = ["serde"] }
chrono = { version = "0.4", default-features = false, features = ["clock", "iana-time-zone", "serde", "std", "winapi"] } chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] }
clap = { version = "4", features = ["color", "derive", "error-context", "help", "std", "string", "suggestions", "usage"] } clap = { version = "4", features = ["derive", "string"] }
crossbeam-utils = { version = "0.8", features = ["once_cell", "std"] } crossbeam-utils = { version = "0.8" }
either = { version = "1", features = ["use_std"] } either = { version = "1" }
fail = { version = "0.5", default-features = false, features = ["failpoints"] } fail = { version = "0.5", default-features = false, features = ["failpoints"] }
futures-channel = { version = "0.3", features = ["alloc", "futures-sink", "sink", "std"] } futures-channel = { version = "0.3", features = ["sink"] }
futures-task = { version = "0.3", default-features = false, features = ["alloc", "std"] } futures-task = { version = "0.3", default-features = false, features = ["std"] }
futures-util = { version = "0.3", features = ["alloc", "async-await", "async-await-macro", "channel", "futures-channel", "futures-io", "futures-macro", "futures-sink", "io", "memchr", "sink", "slab", "std"] } futures-util = { version = "0.3", features = ["channel", "io", "sink"] }
hashbrown = { version = "0.12", features = ["ahash", "inline-more", "raw"] }
indexmap = { version = "1", default-features = false, features = ["std"] } indexmap = { version = "1", default-features = false, features = ["std"] }
libc = { version = "0.2", features = ["extra_traits", "std"] } itertools = { version = "0.10" }
libc = { version = "0.2", features = ["extra_traits"] }
log = { version = "0.4", default-features = false, features = ["serde", "std"] } log = { version = "0.4", default-features = false, features = ["serde", "std"] }
memchr = { version = "2", features = ["std"] } memchr = { version = "2" }
nom = { version = "7", features = ["alloc", "std"] } nom = { version = "7" }
num-bigint = { version = "0.4", features = ["std"] } num-bigint = { version = "0.4" }
num-integer = { version = "0.1", features = ["i128", "std"] } num-integer = { version = "0.1", features = ["i128"] }
num-traits = { version = "0.2", features = ["i128", "libm", "std"] } num-traits = { version = "0.2", features = ["i128", "libm"] }
prost = { version = "0.11", features = ["prost-derive", "std"] } prost = { version = "0.11" }
rand = { version = "0.8", features = ["alloc", "getrandom", "libc", "rand_chacha", "rand_hc", "small_rng", "std", "std_rng"] } rand = { version = "0.8", features = ["small_rng"] }
regex = { version = "1", features = ["aho-corasick", "memchr", "perf", "perf-cache", "perf-dfa", "perf-inline", "perf-literal", "std", "unicode", "unicode-age", "unicode-bool", "unicode-case", "unicode-gencat", "unicode-perl", "unicode-script", "unicode-segment"] } regex = { version = "1" }
regex-syntax = { version = "0.6", features = ["unicode", "unicode-age", "unicode-bool", "unicode-case", "unicode-gencat", "unicode-perl", "unicode-script", "unicode-segment"] } regex-syntax = { version = "0.6" }
scopeguard = { version = "1", features = ["use_std"] } scopeguard = { version = "1" }
serde = { version = "1", features = ["alloc", "derive", "serde_derive", "std"] } serde = { version = "1", features = ["alloc", "derive"] }
serde_json = { version = "1", features = ["raw_value", "std"] } serde_json = { version = "1", features = ["raw_value"] }
socket2 = { version = "0.4", default-features = false, features = ["all"] } socket2 = { version = "0.4", default-features = false, features = ["all"] }
tokio = { version = "1", features = ["bytes", "fs", "io-std", "io-util", "libc", "macros", "memchr", "mio", "net", "num_cpus", "process", "rt", "rt-multi-thread", "signal-hook-registry", "socket2", "sync", "time", "tokio-macros"] } tokio = { version = "1", features = ["fs", "io-std", "io-util", "macros", "net", "process", "rt-multi-thread", "sync", "time"] }
tokio-util = { version = "0.7", features = ["codec", "io", "io-util", "tracing"] } tokio-util = { version = "0.7", features = ["codec", "io"] }
tower = { version = "0.4", features = ["__common", "balance", "buffer", "discover", "futures-core", "futures-util", "indexmap", "limit", "load", "log", "make", "pin-project", "pin-project-lite", "rand", "ready-cache", "retry", "slab", "timeout", "tokio", "tokio-util", "tracing", "util"] } tower = { version = "0.4", features = ["balance", "buffer", "limit", "retry", "timeout", "util"] }
tracing = { version = "0.1", features = ["attributes", "log", "std", "tracing-attributes"] } tracing = { version = "0.1", features = ["log"] }
tracing-core = { version = "0.1", features = ["once_cell", "std"] } tracing-core = { version = "0.1" }
url = { version = "2", features = ["serde"] } url = { version = "2", features = ["serde"] }
[build-dependencies] [build-dependencies]
anyhow = { version = "1", features = ["backtrace", "std"] } anyhow = { version = "1", features = ["backtrace"] }
bytes = { version = "1", features = ["serde", "std"] } bytes = { version = "1", features = ["serde"] }
either = { version = "1", features = ["use_std"] } either = { version = "1" }
hashbrown = { version = "0.12", features = ["ahash", "inline-more", "raw"] }
indexmap = { version = "1", default-features = false, features = ["std"] } indexmap = { version = "1", default-features = false, features = ["std"] }
libc = { version = "0.2", features = ["extra_traits", "std"] } itertools = { version = "0.10" }
libc = { version = "0.2", features = ["extra_traits"] }
log = { version = "0.4", default-features = false, features = ["serde", "std"] } log = { version = "0.4", default-features = false, features = ["serde", "std"] }
memchr = { version = "2", features = ["std"] } memchr = { version = "2" }
nom = { version = "7", features = ["alloc", "std"] } nom = { version = "7" }
prost = { version = "0.11", features = ["prost-derive", "std"] } prost = { version = "0.11" }
regex = { version = "1", features = ["aho-corasick", "memchr", "perf", "perf-cache", "perf-dfa", "perf-inline", "perf-literal", "std", "unicode", "unicode-age", "unicode-bool", "unicode-case", "unicode-gencat", "unicode-perl", "unicode-script", "unicode-segment"] } regex = { version = "1" }
regex-syntax = { version = "0.6", features = ["unicode", "unicode-age", "unicode-bool", "unicode-case", "unicode-gencat", "unicode-perl", "unicode-script", "unicode-segment"] } regex-syntax = { version = "0.6" }
serde = { version = "1", features = ["alloc", "derive", "serde_derive", "std"] } serde = { version = "1", features = ["alloc", "derive"] }
syn = { version = "1", features = ["clone-impls", "derive", "extra-traits", "full", "parsing", "printing", "proc-macro", "quote", "visit", "visit-mut"] } syn = { version = "1", features = ["extra-traits", "full", "visit", "visit-mut"] }
### END HAKARI SECTION ### END HAKARI SECTION