Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
98 lines (95 loc) · 4.24 KB
/
Copy pathCargo.toml
File metadata and controls
98 lines (95 loc) · 4.24 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
[workspace]
resolver = "3"
members = [
"crates/basal-proto",
"crates/basal-worker",
"crates/basal-host",
"crates/basal-core",
"crates/basal-testkit",
"crates/basal-module",
"crates/basal-launch",
"crates/basal-rig",
]
[workspace.package]
edition = "2024"
license = "MIT"
publish = false
rust-version = "1.89"
[workspace.dependencies]
# Dependencies do not require sibling checkouts.
basal-core = { path = "crates/basal-core" }
basal-host = { path = "crates/basal-host" }
basal-launch = { path = "crates/basal-launch" }
basal-proto = { path = "crates/basal-proto" }
basal-testkit = { path = "crates/basal-testkit" }
blake3 = "1.8"
getrandom = "0.3"
# Cron patterns for schedules. Used only to parse a pattern and to find the
# wall-clock times that match it; basal applies its own time-zone rules on
# top (see basal-core's schedule module), so croner's own DST behaviour is
# never relied on. The jiff backend lets both sides share one time type.
croner = { version = "4.0", default-features = false, features = ["jiff"] }
# Time zones for schedules. Only the bundled IANA database is used, never
# the host's zoneinfo or its local zone, so due times are the same on every
# machine and in every test.
jiff = { version = "0.2.37", default-features = false, features = ["std", "tzdb-bundle-always"] }
# Shared test-binary staging keeps test executables off removable build volumes.
cortexkit-test-support = "=0.1.10"
# The fleet's storage mechanics: open with the single-writer lease, WAL and a
# busy timeout, and versioned migrations. Pinned exactly, as astrocyte does.
cortexkit-store = { version = "=0.2.4", features = ["sqlite"] }
cortexkit-store-types = "0.2.2"
cortexkit-role-tool-provider = "=0.9.1"
cortexkit-role-tool-provider-conformance = "=0.9.1"
# The provider-owned resource-busy refusal is shared across the fleet.
cortexkit-resource-busy = { git = "https://github.com/cortexkit/commons", rev = "c46f324133c5df6411703714e4c147f7cc8554a0" }
# The driver cortexkit-store is built on. basal-core writes its own queries
# against the connection the store hands out, so it names the same major.
rusqlite = "0.32"
libc = "0.2.180"
# The engine. Only the default `std` feature: no module loader, no futures
# adapter, no dynamic loading.
rquickjs = { version = "=0.14.0", default-features = false, features = ["std"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Compiles and checks codemode tool input schemas (draft 2020-12). Default
# features are off so the crate cannot fetch a schema over HTTP or read one
# from a file: a tool schema may only refer to its own document.
jsonschema = { version = "0.47", default-features = false }
# Checks SHA-256 of contract evidence and test vectors against the digests
# published by their owners.
sha2 = "0.10"
# The module shell. subc-client-rs owns HELLO, route binding, health and the
# frame lifecycle; subc-protocol is the manifest and route vocabulary it
# speaks. Keep the scope-stamp reader current with the protocol.
subc-client-rs = "0.29.3"
subc-os = "0.1.17"
subc-protocol = "0.32.4"
subc-transport = "0.13.0"
async-trait = "0.1"
async-nats = { version = "0.50", default-features = false, features = ["jetstream", "kv", "nkeys", "nuid", "ring", "server_2_10"] }
cortexkit-bus-naming = "=0.2.0"
cortexkit-bus-trait = "=0.3.0"
cortexkit-bus-nats = "=0.3.0"
base64 = "0.22"
futures-util = "0.3"
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
# The fleet's log format and retention; the module logs through it as
# entorhinal does.
cortexkit-log = "0.3.5"
tracing = "0.1"
# net.fetch, the network built-in. basal writes its own small HTTP/1.1
# client over rustls so it controls every step the safety rules name:
# the connection goes to the one address it checked, redirects are
# followed by hand, and nothing reads cookies, proxies or credentials from
# the environment. ring is the only crypto provider, so the build needs no
# cmake. Server certificates are checked against the bundled Mozilla
# roots, the same on every machine.
rustls = { version = "0.23", default-features = false, features = ["ring", "std", "tls12"] }
webpki-roots = "1.0"
httparse = "1.10"
# Tests only: certificates for the local HTTPS server the net.fetch tests
# talk to.
rcgen = "0.13"
[profile.release]
opt-level = 3