Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
104 lines (95 loc) · 4.25 KB
/
Copy pathCargo.toml
File metadata and controls
104 lines (95 loc) · 4.25 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
[workspace]
# "3" resolves with rust-version in mind, so `cargo update` cannot pick a
# dependency that needs a newer compiler than the MSRV job has.
resolver = "3"
members = ["crates/*"]
[workspace.package]
version = "0.0.1"
edition = "2021"
rust-version = "1.88"
license = "Apache-2.0"
repository = "https://github.com/anandghegde/aralo"
publish = false
# Internal crates. The allowed dependency direction is documented in
# docs/architecture.md and enforced by scripts/check-deps.sh:
# engine, snippet, template pure base, no dependency on anything below
# library, ai, ... sit above the base
# core composes
# ffi, cli sit on core
[workspace.dependencies]
aralo-engine = { path = "crates/aralo-engine" }
aralo-snippet = { path = "crates/aralo-snippet" }
aralo-template = { path = "crates/aralo-template" }
aralo-library = { path = "crates/aralo-library" }
aralo-embed = { path = "crates/aralo-embed" }
aralo-ai = { path = "crates/aralo-ai" }
aralo-providers = { path = "crates/aralo-providers" }
aralo-import = { path = "crates/aralo-import" }
aralo-script = { path = "crates/aralo-script" }
aralo-core = { path = "crates/aralo-core" }
# Test helpers; a dev-dependency only.
aralo-testkit = { path = "crates/aralo-testkit" }
# Ed25519 checks on the signed data tables (plan section 9). Already in the
# build as rustls's crypto provider, so it adds no crate.
aws-lc-rs = { version = "1.18", default-features = false, features = ["aws-lc-sys"] }
blake3 = { version = "1.8", default-features = false, features = ["std"] }
# The clock, for the core only. `clock` brings the system time zone;
# `aralo-template` formats a time it is handed and never reads one.
chrono = { version = "0.4", default-features = false, features = ["clock", "std"] }
clap = { version = "4.6", features = ["derive"] }
criterion = "0.8"
csv = "1.4"
# Three-way merge of a snippet body and its sync client's conflict copy (ADR-0008).
diffy = { version = "0.4", default-features = false }
# The word-level diff a command on selected text shows before it replaces
# anything (ADR-0008).
similar = { version = "2", default-features = false, features = ["text"] }
# API keys in the system keychain (PRD P13). Each crate that uses it picks the
# platform store by target; with none, it keeps keys in memory.
keyring = { version = "3.6", default-features = false }
notify = { version = "8.2", default-features = false, features = ["macos_fsevent"] }
nucleo-matcher = "0.3"
plist = { version = "1.10", default-features = false, features = ["serde"] }
proptest = "1.11"
# The one HTTP client, and only the network guard in aralo-ai constructs it
# (ADR-0007). rustls only; no system proxy, so local-only mode cannot be
# routed through one.
reqwest = { version = "0.13", default-features = false, features = ["rustls", "http2"] }
rusqlite = { version = "0.40", features = ["bundled"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml_ng = "0.10"
tempfile = "3"
thiserror = "2"
# The core runtime (ADR-0004). Crates ask for the features they use.
tokio = { version = "1.53", default-features = false }
toml = { version = "1.1", default-features = false, features = ["parse", "serde"] }
ulid = { version = "3", default-features = false }
unicode-segmentation = "1.12"
# The embedding model's tokenizer: NFD for stripping accents, and the general
# category of a character for what counts as punctuation or control.
unicode-normalization = { version = "0.1", default-features = false, features = ["std"] }
unicode-properties = { version = "0.1", default-features = false, features = ["general-category"] }
uniffi = "0.32"
zeroize = { version = "1.9", default-features = false }
[workspace.lints.rust]
unsafe_code = "forbid"
missing_debug_implementations = "warn"
[workspace.lints.clippy]
dbg_macro = "deny"
print_stdout = "warn"
todo = "warn"
# Full debug info made target/ grow past 10 GB. Line tables still give
# backtraces and debugger stepping in our crates; dependencies carry none.
[profile.dev]
debug = "line-tables-only"
[profile.dev.package."*"]
debug = false
[profile.release]
lto = "thin"
codegen-units = 1
# Unwinding stays on: UniFFI turns a Rust panic into a Swift error instead of
# killing the agent that hosts the event tap.
strip = "symbols"
[profile.bench]
debug = true