[package] name = "pageserver" version = "0.1.0" edition = "2024" license.workspace = true [features] default = [] # Enables test-only APIs, incuding failpoints. In particular, enables the `fail_point!` macro, # which adds some runtime cost to run tests on outage conditions testing = ["fail/failpoints", "pageserver_api/testing", "wal_decoder/testing", "pageserver_client/testing"] # Direct IO alignment options (propagated to pageserver_api) io-align-512 = ["pageserver_api/io-align-512"] io-align-4k = ["pageserver_api/io-align-4k"] fuzz-read-path = ["testing"] # Enables benchmarking only APIs benchmarking = [] [dependencies] anyhow.workspace = true arc-swap.workspace = true async-compression.workspace = true async-stream.workspace = true bincode.workspace = true bit_field.workspace = true byteorder.workspace = true bytes.workspace = true camino-tempfile.workspace = true camino.workspace = true chrono = { workspace = true, features = ["serde"] } clap = { workspace = true, features = ["string"] } consumption_metrics.workspace = true crc32c.workspace = true either.workspace = true enum-map.workspace = true enumset = { workspace = true, features = ["serde"]} fail.workspace = true futures.workspace = true hashlink.workspace = true hex.workspace = true http.workspace = true http-utils.workspace = true humantime-serde.workspace = true humantime.workspace = true hyper0.workspace = true itertools.workspace = true jsonwebtoken.workspace = true md5.workspace = true metrics.workspace = true nix.workspace = true num_cpus.workspace = true # hack to get the number of worker threads tokio uses num-traits.workspace = true once_cell.workspace = true pageserver_api.workspace = true pageserver_client.workspace = true # for ResponseErrorMessageExt TOOD refactor that pageserver_compaction.workspace = true pageserver_page_api.workspace = true pem.workspace = true pin-project-lite.workspace = true postgres_backend.workspace = true postgres_connection.workspace = true postgres_ffi.workspace = true postgres_ffi_types.workspace = true postgres_initdb.workspace = true postgres-protocol.workspace = true postgres-types.workspace = true posthog_client_lite.workspace = true pprof.workspace = true pq_proto.workspace = true rand.workspace = true range-set-blaze = { version = "0.1.16", features = ["alloc"] } regex.workspace = true remote_storage.workspace = true reqwest.workspace = true rpds.workspace = true rustls.workspace = true scopeguard.workspace = true send-future.workspace = true serde_json = { workspace = true, features = ["raw_value"] } serde_path_to_error.workspace = true serde_with.workspace = true serde.workspace = true smallvec.workspace = true storage_broker.workspace = true strum_macros.workspace = true strum.workspace = true sysinfo.workspace = true tenant_size_model.workspace = true thiserror.workspace = true tikv-jemallocator.workspace = true tokio = { workspace = true, features = ["process", "sync", "fs", "rt", "io-util", "time"] } tokio-epoll-uring.workspace = true tokio-io-timeout.workspace = true tokio-postgres.workspace = true tokio-rustls.workspace = true tokio-stream.workspace = true tokio-tar.workspace = true tokio-util.workspace = true toml_edit = { workspace = true, features = [ "serde" ] } tonic.workspace = true tonic-reflection.workspace = true tower.workspace = true tracing.workspace = true tracing-utils.workspace = true url.workspace = true utils.workspace = true wal_decoder.workspace = true walkdir.workspace = true workspace_hack.workspace = true twox-hash.workspace = true [target.'cfg(target_os = "linux")'.dependencies] procfs.workspace = true [dev-dependencies] base64.workspace = true criterion.workspace = true hex-literal.workspace = true tokio = { workspace = true, features = ["process", "sync", "fs", "rt", "io-util", "time", "test-util"] } indoc.workspace = true uuid.workspace = true rstest.workspace = true [[bench]] name = "bench_layer_map" harness = false [[bench]] name = "bench_walredo" harness = false [[bench]] name = "bench_ingest" harness = false required-features = ["benchmarking"] [[bench]] name = "upload_queue" harness = false [[bench]] name = "bench_metrics" harness = false [[bin]] name = "test_helper_slow_client_reads" required-features = [ "testing" ]