Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
130 lines (114 loc) · 3.36 KB
/
Copy pathCargo.toml
File metadata and controls
130 lines (114 loc) · 3.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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
[package]
name = "localify"
version = "1.8.0"
edition = "2024"
description = "Stable .localify domains with trusted HTTPS for local development"
license = "AGPL-3.0-only"
repository = "https://github.com/Synapsr/Localify"
[[bin]]
name = "localify"
path = "src/main.rs"
[dependencies]
clap = { version = "4", features = ["derive"] }
clap_complete = "4"
anyhow = "1.0"
thiserror = "2.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "0.9"
rcgen = { version = "0.14", features = ["pem", "x509-parser"] }
# Reads the name constraint back from a CA on disk. rcgen already builds it.
x509-parser = "0.18"
time = { version = "0.3", features = ["formatting"] }
# Async runtime
tokio = { version = "1", features = [
"rt-multi-thread",
"macros",
"net",
"io-util",
"signal",
"process",
] }
# HTTP server
axum = "0.8"
tower = "0.5"
tower-http = { version = "0.6", features = ["fs", "trace"] }
# HTTP client (for reverse proxy)
hyper = { version = "1.6", features = ["full"] }
hyper-util = { version = "0.1", features = [
"client-legacy",
"http1",
"http2",
"tokio",
"server-auto",
"service",
] }
hyper-rustls = { version = "0.27", default-features = false, features = [
"aws-lc-rs",
"http1",
"http2",
"tls12",
"webpki-tokio",
] }
http-body-util = "0.1"
# TLS
tokio-rustls = "0.26"
rustls = "0.23"
# Lock-free atomic state swapping
arc-swap = "1"
# Async utilities (CancellationToken for graceful shutdown)
tokio-util = { version = "0.7", features = ["rt"] }
# Utilities
humantime = "2.1"
# geteuid, and free for launch_activate_socket's result
libc = "0.2"
# A Unix socket connect bounded by a timeout, for the app bridge's client:
# std has none. Already in the tree through tokio and hyper-util.
socket2 = "0.6"
dialoguer = { version = "0.12", default-features = false }
# Tracing
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# DNS
simple-dns = "0.11"
base64 = "0.22.1"
sha2 = "0.10"
# Docker
bollard = "0.20"
futures-util = "0.3"
# Remote machines (docs/remote-machines.md, ADR 0029): Noise sessions
# between paired machines, with only the suite the contract names.
snow = { version = "0.10", default-features = false, features = [
"std",
"use-chacha20poly1305",
"use-blake2",
"use-curve25519",
"use-getrandom",
] }
# The pairing commitment and code; snow already depends on it.
blake2 = "0.10"
# The relay's WebSocket, over the rustls setup above: no TLS or connect feature.
tokio-tungstenite = { version = "0.29", default-features = false, features = ["handshake"] }
# The roots hyper-rustls already uses, for the WebSocket's TLS.
webpki-roots = "1"
zeroize = "1"
# Automatic updates (docs/desktop.md, "Automatic updates", ADR 0034): the
# release archive is a signed .tar.gz. The signature uses Tauri's minisign
# format, checked with the crate the app's updater already uses. Without
# default features `tar` writes no extended attributes.
flate2 = "1"
tar = { version = "0.4", default-features = false }
minisign-verify = "0.2"
# Release versions are semver, compared as such. Already in the tree.
semver = "1"
[profile.release]
strip = true
lto = true
codegen-units = 1
panic = "abort"
[dev-dependencies]
tempfile = "3"
# Signs test archives in the minisign format the updater checks.
ed25519-dalek = "2"
# A paused clock for the relay link's timing tests.
tokio = { version = "1", features = ["test-util"] }