-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathCargo.toml
More file actions
95 lines (84 loc) · 2.26 KB
/
Cargo.toml
File metadata and controls
95 lines (84 loc) · 2.26 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
[workspace]
members = [
".",
"crates/smolvm-agent",
"crates/smolvm-napi",
"crates/smolvm-pack",
"crates/smolvm-protocol",
"crates/smolvm-registry",
"crates/smolvm-smolfile",
]
resolver = "2"
[package]
name = "smolvm"
version = "0.5.12"
edition = "2021"
description = "OCI-native microVM runtime"
license = "Apache-2.0"
repository = "https://github.com/smolvm/smolvm"
keywords = ["microvm", "container", "virtualization"]
categories = ["virtualization", "command-line-utilities"]
[lib]
name = "smolvm"
path = "src/lib.rs"
[[bin]]
name = "smolvm"
path = "src/main.rs"
[dependencies]
smolvm-protocol = { path = "crates/smolvm-protocol" }
smolvm-pack = { path = "crates/smolvm-pack" }
smolvm-registry = { path = "crates/smolvm-registry" }
smolfile = { path = "crates/smolvm-smolfile" }
thiserror = "1"
clap = { version = "4", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
toml = "0.8"
redb = "2"
libc = "0.2"
dirs = "5"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["json", "env-filter"] }
humantime = "2"
tempfile = "3"
# HTTP API server
tokio = { version = "1", features = ["full"] }
axum = { version = "0.7", features = ["macros"] }
tower-http = { version = "0.5", features = ["cors", "trace", "timeout"] }
tokio-stream = "0.1"
parking_lot = "0.12"
async-stream = "0.3"
futures-util = "0.3"
# OpenAPI documentation
utoipa = { version = "5", features = ["axum_extras"] }
utoipa-axum = "0.2"
utoipa-swagger-ui = { version = "8", features = ["axum"] }
ipnet = "2.12.0"
metrics = "0.24"
metrics-exporter-prometheus = { version = "0.16", default-features = false }
[dev-dependencies]
tempfile = "3"
smolvm-protocol = { path = "crates/smolvm-protocol" }
regex = "1"
[build-dependencies]
pkg-config = "0.3"
[workspace.dependencies]
base64 = "0.22"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "1"
tracing = "0.1"
# Release profile optimizations
[profile.release]
lto = true
codegen-units = 1
strip = true
# Smaller binary profile for agent (use with --profile release-small)
[profile.release-small]
inherits = "release"
opt-level = "z" # Optimize for size
lto = true
codegen-units = 1
panic = "abort" # No unwinding - saves ~10% binary size
strip = true