Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
116 lines (109 loc) · 4.36 KB
/
Copy pathCargo.toml
File metadata and controls
116 lines (109 loc) · 4.36 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
[workspace]
resolver = "3"
members = [
"crates/yo",
"crates/yo-alloc",
"crates/yo-arena",
"crates/yo-capi",
"crates/yo-cli",
"crates/yo-common",
"crates/yo-crash",
"crates/yo-derive",
"crates/yo-doc",
"crates/yo-file",
"crates/yo-format",
"crates/yo-graph",
"crates/yo-index",
"crates/yo-kv",
"crates/yo-reactor",
"crates/yo-reader",
"crates/yo-record",
"crates/yo-resp",
"crates/yo-search",
"crates/yo-series",
"crates/yo-shape",
"crates/yo-shard",
"crates/yo-sketch",
"crates/yo-uring",
"crates/yo-vector",
"xtask",
]
# The fuzz targets need nightly and a libfuzzer link, so they are their own
# package rather than a member that would break `cargo build --workspace`.
exclude = ["fuzz"]
[workspace.package]
# One minor per milestone, patches in between, and nothing here promises
# anything while the major is 0. See RELEASING.md.
version = "0.3.33"
edition = "2024"
rust-version = "1.94"
license = "MIT OR Apache-2.0"
repository = "https://github.com/tamnd/yo"
homepage = "https://yo.tamnd.dev"
authors = ["tamnd <tamnd87@gmail.com>"]
# The registry page for a crate nobody has heard of is the only thing most
# people will read about it, and by default it is the description and nothing
# else. These three fill it in, and they are inherited rather than repeated
# because the same seventeen crates are all one project and a per-crate set of
# keywords would be seventeen chances to say something slightly different.
readme = "README.md"
keywords = ["database", "redis", "embedded", "key-value", "storage"]
categories = ["database-implementations", "data-structures", "caching"]
[workspace.dependencies]
yo-alloc = { path = "crates/yo-alloc", version = "0.3.33" }
# The library is `yo`, the package on crates.io is `yodb`.
yodb = { path = "crates/yo", version = "0.3.33" }
yo-arena = { path = "crates/yo-arena", version = "0.3.33" }
yo-capi = { path = "crates/yo-capi", version = "0.3.33" }
yo-cli = { path = "crates/yo-cli", version = "0.3.33" }
yo-common = { path = "crates/yo-common", version = "0.3.33" }
yo-crash = { path = "crates/yo-crash", version = "0.3.33" }
yo-derive = { path = "crates/yo-derive", version = "0.3.33" }
yo-doc = { path = "crates/yo-doc", version = "0.3.33" }
yo-file = { path = "crates/yo-file", version = "0.3.33" }
yo-format = { path = "crates/yo-format", version = "0.3.33" }
yo-graph = { path = "crates/yo-graph", version = "0.3.33" }
yo-index = { path = "crates/yo-index", version = "0.3.33" }
yo-kv = { path = "crates/yo-kv", version = "0.3.33" }
yo-reactor = { path = "crates/yo-reactor", version = "0.3.33" }
yo-reader = { path = "crates/yo-reader", version = "0.3.33" }
yo-record = { path = "crates/yo-record", version = "0.3.33" }
yo-resp = { path = "crates/yo-resp", version = "0.3.33" }
yo-search = { path = "crates/yo-search", version = "0.3.33" }
yo-series = { path = "crates/yo-series", version = "0.3.33" }
yo-shape = { path = "crates/yo-shape", version = "0.3.33" }
yo-shard = { path = "crates/yo-shard", version = "0.3.33" }
yo-sketch = { path = "crates/yo-sketch", version = "0.3.33" }
yo-uring = { path = "crates/yo-uring", version = "0.3.33" }
yo-vector = { path = "crates/yo-vector", version = "0.3.33" }
criterion = "0.8"
libc = "0.2"
loom = "0.7"
# Lua 5.1, which is the version a script written for Redis is written against
# and not a choice with alternatives. `vendored` builds the interpreter from
# source inside the build rather than looking for one on the machine, so a
# server built here runs the same Lua wherever it was built.
mlua = { version = "0.12", default-features = false, features = ["lua51", "vendored"] }
windows-sys = { version = "0.61", default-features = false }
[workspace.lints.rust]
unsafe_op_in_unsafe_fn = "deny"
# `--cfg loom` swaps the atomics for loom's so the model checker can run. It is
# set by the CI job and by hand, never by a feature, because a feature would let
# it end up in a release build.
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(loom)'] }
missing_docs = "warn"
[workspace.lints.clippy]
undocumented_unsafe_blocks = "deny"
alloc_instead_of_core = "warn"
# The gate numbers in bench/ are only meaningful against this profile. Anything
# published from a different profile says so in the row.
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
panic = "abort"
[profile.bench]
opt-level = 3
lto = "fat"
codegen-units = 1
debug = true