Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
100 lines (95 loc) · 4 KB
/
Copy pathCargo.toml
File metadata and controls
100 lines (95 loc) · 4 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
[workspace]
resolver = "2"
members = [
"crates/big-civil",
"crates/big-container",
"crates/big-page",
"crates/big-pager",
"crates/big-btree",
"crates/big-engine",
"crates/big-keys",
"crates/big-rbac",
"crates/big-db",
"crates/big-plan",
"crates/big-sql",
"crates/big-testfile",
"crates/big-exec",
"crates/big-embed",
"crates/big-tls",
"crates/big-wire",
"crates/big-cluster",
"crates/big-http",
# One address in front of many nodes. It ships an executable of its own rather than a third
# `[[bin]]` in `big-bin`, because the point of it is that it opens no file and links no
# engine, and a shared package would make that unobservable from outside.
"crates/big-proxy",
# Everything else that ships as an executable: `big` and `bigctl`.
"crates/big-bin",
"crates/big-e2e",
# Not part of the engine: it pulls in rival engines to measure against.
"bench",
# Not part of the engine either, and the other direction: these are written *against* the
# server's HTTP surface, the way somebody outside this repository would write them. Their
# `[dependencies]` sections are empty, which is what keeps that claim checkable.
"contrib/big-message",
"contrib/big-message-redis",
]
# cargo-fuzz needs nightly; the engine itself stays on stable.
exclude = ["fuzz"]
[workspace.package]
version = "0.1.0"
edition = "2021"
rust-version = "1.88"
license = "Apache-2.0"
repository = "https://github.com/raftio/bigdb"
# Every internal crate named once. The version here is the one a release has to move, rather
# than the same string repeated on thirty dependency lines where one can be missed. Paths
# resolve from the workspace root, which is why `bench` no longer needs its own spelling of the
# same dependency.
[workspace.dependencies]
big-btree = { path = "crates/big-btree", version = "0.1.0" }
big-civil = { path = "crates/big-civil", version = "0.1.0" }
big-cluster = { path = "crates/big-cluster", version = "0.1.0" }
big-container = { path = "crates/big-container", version = "0.1.0" }
big-db = { path = "crates/big-db", version = "0.1.0" }
big-embed = { path = "crates/big-embed", version = "0.1.0" }
big-engine = { path = "crates/big-engine", version = "0.1.0" }
big-exec = { path = "crates/big-exec", version = "0.1.0" }
big-http = { path = "crates/big-http", version = "0.1.0" }
big-keys = { path = "crates/big-keys", version = "0.1.0" }
big-page = { path = "crates/big-page", version = "0.1.0" }
big-pager = { path = "crates/big-pager", version = "0.1.0" }
big-plan = { path = "crates/big-plan", version = "0.1.0" }
big-proxy = { path = "crates/big-proxy", version = "0.1.0" }
big-rbac = { path = "crates/big-rbac", version = "0.1.0" }
big-sql = { path = "crates/big-sql", version = "0.1.0" }
big-tls = { path = "crates/big-tls", version = "0.1.0" }
big-wire = { path = "crates/big-wire", version = "0.1.0" }
# No version: `publish = false`, so it can only ever be reached by path.
big-testfile = { path = "crates/big-testfile" }
big-message = { path = "contrib/big-message" }
big-message-redis = { path = "contrib/big-message-redis" }
# The one third-party crate the *binaries* share, named here so the two of them cannot drift
# into different feature sets - which is the failure the five hand-rolled parsers it replaces
# actually had. See `docs/dependencies.md` for what it costs and why that was judged worth it.
#
# `default-features = false` because two of clap's defaults are crates rather than code:
# `color` pulls `anstream` and `wrap_help` pulls `terminal_size`, and neither earns its place in
# a tree this small when half of what reads this output is a shell script. What is left -
# `help`, `usage`, `error-context` and `suggestions` - is the parsing and the diagnostics.
clap = { version = "4.6", default-features = false, features = [
"std",
"help",
"usage",
"error-context",
"suggestions",
"derive",
] }
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1
debug = 1
[profile.bench]
lto = "thin"
codegen-units = 1