# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.95"
name = "spg-server"
version = "7.9.28"
authors = ["GOLIA K.K. <lihao@golia.jp>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "SPG daemon — listens for self-built wire-frame connections and PG-wire (libpq-compatible)."
readme = "README.md"
keywords = [
    "spg",
    "database",
    "server",
    "sql",
    "postgres",
]
categories = [
    "database-implementations",
    "network-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/goliajp/spg"

[[bin]]
name = "spg-server"
path = "src/main.rs"

[[test]]
name = "chaos_compact_atomic"
path = "tests/chaos_compact_atomic.rs"

[[test]]
name = "chaos_wal_compression_torn_write"
path = "tests/chaos_wal_compression_torn_write.rs"

[[test]]
name = "cross_version_compat"
path = "tests/cross_version_compat.rs"

[[test]]
name = "e2e_alter_rebuild"
path = "tests/e2e_alter_rebuild.rs"

[[test]]
name = "e2e_async_commit"
path = "tests/e2e_async_commit.rs"

[[test]]
name = "e2e_audit"
path = "tests/e2e_audit.rs"

[[test]]
name = "e2e_audit_verify"
path = "tests/e2e_audit_verify.rs"

[[test]]
name = "e2e_auth"
path = "tests/e2e_auth.rs"

[[test]]
name = "e2e_auto_analyze"
path = "tests/e2e_auto_analyze.rs"

[[test]]
name = "e2e_backup"
path = "tests/e2e_backup.rs"

[[test]]
name = "e2e_cascade"
path = "tests/e2e_cascade.rs"

[[test]]
name = "e2e_chaos"
path = "tests/e2e_chaos.rs"

[[test]]
name = "e2e_chaos_async_commit"
path = "tests/e2e_chaos_async_commit.rs"

[[test]]
name = "e2e_chaos_freeze"
path = "tests/e2e_chaos_freeze.rs"

[[test]]
name = "e2e_chaos_logical"
path = "tests/e2e_chaos_logical.rs"

[[test]]
name = "e2e_chaos_netsplit"
path = "tests/e2e_chaos_netsplit.rs"

[[test]]
name = "e2e_compression_metrics"
path = "tests/e2e_compression_metrics.rs"

[[test]]
name = "e2e_copy_options"
path = "tests/e2e_copy_options.rs"

[[test]]
name = "e2e_correlated"
path = "tests/e2e_correlated.rs"

[[test]]
name = "e2e_cte"
path = "tests/e2e_cte.rs"

[[test]]
name = "e2e_disk_watermark"
path = "tests/e2e_disk_watermark.rs"

[[test]]
name = "e2e_explain"
path = "tests/e2e_explain.rs"

[[test]]
name = "e2e_flusher"
path = "tests/e2e_flusher.rs"

[[test]]
name = "e2e_freezer"
path = "tests/e2e_freezer.rs"

[[test]]
name = "e2e_fuzz"
path = "tests/e2e_fuzz.rs"

[[test]]
name = "e2e_graceful_shutdown"
path = "tests/e2e_graceful_shutdown.rs"

[[test]]
name = "e2e_group_commit"
path = "tests/e2e_group_commit.rs"

[[test]]
name = "e2e_half"
path = "tests/e2e_half.rs"

[[test]]
name = "e2e_index"
path = "tests/e2e_index.rs"

[[test]]
name = "e2e_json"
path = "tests/e2e_json.rs"

[[test]]
name = "e2e_json_path"
path = "tests/e2e_json_path.rs"

[[test]]
name = "e2e_limits"
path = "tests/e2e_limits.rs"

[[test]]
name = "e2e_manifest"
path = "tests/e2e_manifest.rs"

[[test]]
name = "e2e_observability"
path = "tests/e2e_observability.rs"

[[test]]
name = "e2e_parallel_freezer"
path = "tests/e2e_parallel_freezer.rs"

[[test]]
name = "e2e_persistence"
path = "tests/e2e_persistence.rs"

[[test]]
name = "e2e_pg_catalog"
path = "tests/e2e_pg_catalog.rs"

[[test]]
name = "e2e_pg_copy"
path = "tests/e2e_pg_copy.rs"

[[test]]
name = "e2e_pg_extended"
path = "tests/e2e_pg_extended.rs"

[[test]]
name = "e2e_pg_scram"
path = "tests/e2e_pg_scram.rs"

[[test]]
name = "e2e_pg_session_vars"
path = "tests/e2e_pg_session_vars.rs"

[[test]]
name = "e2e_pg_vacuum"
path = "tests/e2e_pg_vacuum.rs"

[[test]]
name = "e2e_pgbouncer_compat"
path = "tests/e2e_pgbouncer_compat.rs"

[[test]]
name = "e2e_pgwire"
path = "tests/e2e_pgwire.rs"

[[test]]
name = "e2e_pgwire_binary_params"
path = "tests/e2e_pgwire_binary_params.rs"

[[test]]
name = "e2e_pgwire_client_compat"
path = "tests/e2e_pgwire_client_compat.rs"

[[test]]
name = "e2e_pgwire_describe"
path = "tests/e2e_pgwire_describe.rs"

[[test]]
name = "e2e_pgwire_pipelined"
path = "tests/e2e_pgwire_pipelined.rs"

[[test]]
name = "e2e_ping"
path = "tests/e2e_ping.rs"

[[test]]
name = "e2e_prefetch"
path = "tests/e2e_prefetch.rs"

[[test]]
name = "e2e_publication_ddl"
path = "tests/e2e_publication_ddl.rs"

[[test]]
name = "e2e_query"
path = "tests/e2e_query.rs"

[[test]]
name = "e2e_query_budget"
path = "tests/e2e_query_budget.rs"

[[test]]
name = "e2e_query_ns_budget"
path = "tests/e2e_query_ns_budget.rs"

[[test]]
name = "e2e_rbac"
path = "tests/e2e_rbac.rs"

[[test]]
name = "e2e_recursive_cte"
path = "tests/e2e_recursive_cte.rs"

[[test]]
name = "e2e_replay_only"
path = "tests/e2e_replay_only.rs"

[[test]]
name = "e2e_replication"
path = "tests/e2e_replication.rs"

[[test]]
name = "e2e_replication_filter"
path = "tests/e2e_replication_filter.rs"

[[test]]
name = "e2e_restore_drill"
path = "tests/e2e_restore_drill.rs"

[[test]]
name = "e2e_segment_forward"
path = "tests/e2e_segment_forward.rs"

[[test]]
name = "e2e_slow_query_log"
path = "tests/e2e_slow_query_log.rs"

[[test]]
name = "e2e_spg_stat_activity"
path = "tests/e2e_spg_stat_activity.rs"

[[test]]
name = "e2e_spg_statistic"
path = "tests/e2e_spg_statistic.rs"

[[test]]
name = "e2e_sq8"
path = "tests/e2e_sq8.rs"

[[test]]
name = "e2e_subqueries"
path = "tests/e2e_subqueries.rs"

[[test]]
name = "e2e_subscription"
path = "tests/e2e_subscription.rs"

[[test]]
name = "e2e_table_metrics"
path = "tests/e2e_table_metrics.rs"

[[test]]
name = "e2e_timeouts"
path = "tests/e2e_timeouts.rs"

[[test]]
name = "e2e_two_tier_server"
path = "tests/e2e_two_tier_server.rs"

[[test]]
name = "e2e_tx"
path = "tests/e2e_tx.rs"

[[test]]
name = "e2e_update_delete"
path = "tests/e2e_update_delete.rs"

[[test]]
name = "e2e_vector"
path = "tests/e2e_vector.rs"

[[test]]
name = "e2e_wait_events"
path = "tests/e2e_wait_events.rs"

[[test]]
name = "e2e_wait_pos"
path = "tests/e2e_wait_pos.rs"

[[test]]
name = "e2e_wal"
path = "tests/e2e_wal.rs"

[[test]]
name = "e2e_wal_binary"
path = "tests/e2e_wal_binary.rs"

[[test]]
name = "e2e_wal_compression"
path = "tests/e2e_wal_compression.rs"

[[test]]
name = "e2e_wal_level"
path = "tests/e2e_wal_level.rs"

[[test]]
name = "e2e_wal_tee"
path = "tests/e2e_wal_tee.rs"

[[test]]
name = "e2e_window"
path = "tests/e2e_window.rs"

[[test]]
name = "e2e_window_ext"
path = "tests/e2e_window_ext.rs"

[[test]]
name = "e2e_window_frames"
path = "tests/e2e_window_frames.rs"

[[test]]
name = "perf_1b_rows"
path = "tests/perf_1b_rows.rs"

[[test]]
name = "perf_concurrency"
path = "tests/perf_concurrency.rs"

[[test]]
name = "perf_gate_sq8"
path = "tests/perf_gate_sq8.rs"

[[test]]
name = "perf_parallel_freezer"
path = "tests/perf_parallel_freezer.rs"

[[test]]
name = "perf_prefetch"
path = "tests/perf_prefetch.rs"

[[test]]
name = "perf_prepared_vs_simple"
path = "tests/perf_prepared_vs_simple.rs"

[[test]]
name = "prod_ready"
path = "tests/prod_ready.rs"

[[test]]
name = "slo_smoke"
path = "tests/slo_smoke.rs"

[dependencies.libc]
version = "0.2"

[dependencies.spg-audit]
version = "7.9"

[dependencies.spg-crypto]
version = "7.9"

[dependencies.spg-engine]
version = "7.9"

[dependencies.spg-manifest]
version = "7.9"

[dependencies.spg-sql]
version = "7.9"

[dependencies.spg-storage]
version = "7.9"

[dependencies.spg-wire]
version = "7.9"

[dev-dependencies.libc]
version = "0.2"

[dev-dependencies.spg-audit]
version = "7.9"

[lints.clippy]
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"

[lints.clippy.all]
level = "warn"
priority = -1

[lints.clippy.pedantic]
level = "warn"
priority = -1

[lints.rust]
missing_debug_implementations = "warn"
unsafe_code = "deny"
unused_must_use = "deny"
