-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCargo.toml
More file actions
137 lines (117 loc) · 4.33 KB
/
Copy pathCargo.toml
File metadata and controls
137 lines (117 loc) · 4.33 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
134
135
136
137
[package]
name = "hyperdb-api"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
description = "Pure Rust API for Hyper database"
license.workspace = true
repository.workspace = true
homepage.workspace = true
readme = "README.md"
keywords = ["database", "hyper", "postgres", "arrow"]
categories = ["database"]
autobenches = false
[dependencies]
# x-release-please-start-version
hyperdb-api-core = { path = "../hyperdb-api-core", version = "=0.7.0" }
# x-release-please-end
# NOTE: hyperdb-api-derive is intentionally NOT a dep of hyperdb-api.
# Adding it creates a cycle:
# hyperdb-api → hyperdb-api-derive → hyperdb-compile-check → hyperdb-api
# proc-macro re-exports (FromRow, Table, query_as!) are gone from hyperdb-api;
# users add hyperdb-api-derive directly.
bytes = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
# Arrow for result parsing (used by both TCP and gRPC transports)
arrow = { version = "58", default-features = false, features = ["ipc"] }
# SmallVec for memory-efficient collections that are typically small
smallvec = "1.15"
# Deadpool - async connection pool.
# `rt_tokio_1` enables deadpool's Tokio-backed timeout enforcement, required by
# `create_pool` whenever a wait/create/recycle timeout is configured. The sync
# `ConnectionPool` path uses std primitives only and never touches this runtime.
deadpool = { version = "0.13", features = ["rt_tokio_1"] }
# tokio sync primitives — already present transitively via hyperdb-api-core's
# async TCP client; declared here for the pool's first-connection mutex.
tokio = { workspace = true, features = ["sync"] }
# async-stream's try_stream! powers AsyncConnection::stream_as, letting us
# await next_chunk() inside a natural loop and surface the submit error as
# the stream's first item.
async-stream = "0.3"
# futures-core provides the Stream trait used in stream_as's return type.
# Already present transitively; pinned here as a direct dep for the public API.
futures-core = "0.3"
# Serde JSON - for query stats log parsing
serde = { workspace = true }
serde_json = { workspace = true }
[lints]
workspace = true
[dev-dependencies]
# path-only: no version pin so cargo doesn't try to resolve hyperdb-api-derive
# against crates.io during `cargo publish` (that would create a circular
# publish dependency since hyperdb-api-derive dev-depends on hyperdb-api).
hyperdb-api-derive = { path = "../hyperdb-api-derive" }
tempfile = { workspace = true }
libc = "0.2"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tokio = { version = "1", features = ["full"] }
# StreamExt/TryStreamExt for draining stream_as in async tests
futures = "0.3"
rand = { workspace = true }
serde = { workspace = true }
sysinfo = { workspace = true }
# B4 compile-time validation end-to-end integration tests
[[test]]
name = "compile_time_validation_tests"
path = "tests/compile_time_validation_tests.rs"
harness = true
# Stress test integration test
[[test]]
name = "stress_test"
path = "tests/stress_test_main.rs"
harness = true
# Additional examples (in additional_examples/ subdirectory)
[[example]]
name = "row_mapping_forms"
path = "examples/additional_examples/row_mapping_forms.rs"
[[example]]
name = "compile_time_validation"
path = "examples/additional_examples/compile_time_validation.rs"
[[example]]
name = "async_usage"
path = "examples/additional_examples/async_usage.rs"
[[example]]
name = "threaded_inserter"
path = "examples/additional_examples/threaded_inserter.rs"
[[example]]
name = "arrow"
path = "examples/additional_examples/arrow.rs"
[[example]]
name = "grpc_query"
path = "examples/additional_examples/grpc_query.rs"
[[example]]
name = "connection_pool"
path = "examples/additional_examples/connection_pool.rs"
[[example]]
name = "transactions"
path = "examples/additional_examples/transactions.rs"
# Benchmarks (in benches/ subdirectory - registered as examples for easy `cargo run`)
[[example]]
name = "benchmark"
path = "benches/benchmark.rs"
[[example]]
name = "arrow_batching_benchmark"
path = "benches/arrow_batching_benchmark.rs"
[[example]]
name = "grpc_benchmark_tests"
path = "benches/grpc_benchmark_tests.rs"
[[example]]
name = "async_parallel_benchmark"
path = "benches/async_parallel_benchmark.rs"
[[example]]
name = "benchmark_suite"
path = "benches/benchmark_suite.rs"
[[example]]
name = "kv_benchmark"
path = "benches/kv_benchmark.rs"