-
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathCargo.toml
More file actions
77 lines (58 loc) · 2.23 KB
/
Cargo.toml
File metadata and controls
77 lines (58 loc) · 2.23 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
[workspace]
members = ["gc-derive"]
[package]
name = "openworkers-runtime-v8"
version = "0.14.0"
edition = "2024"
license = "MIT"
[features]
default = []
ptrcomp = ["v8/v8_enable_pointer_compression"]
sandbox = ["v8/v8_enable_sandbox", "serde_v8/v8_enable_sandbox"]
# Worker heap snapshots: full V8 heap serialization (skips parse+compile+eval).
# Disabled by default — concurrent loading of different snapshots crashes due to
# V8's SharedHeapDeserializer::DeserializeStringTable not being thread-safe.
# Code cache (always enabled) is the safe alternative (skips parse+compile only).
unsafe-worker-snapshot = []
# Multiplexed isolate pool: multiple concurrent requests per isolate via Locker + AsyncWaiter.
# Without this feature, the simple pool is used (1 request per isolate, no Locker).
multiplexing = []
[dependencies]
# GC derive macro (internal)
gc-derive = { package = "openworkers-runtime-v8-gc-derive", path = "gc-derive" }
# Common types
openworkers-core = { git = "https://github.com/openworkers/openworkers-core", tag = "v0.14.0" }
# V8 JavaScript engine (fork with UnenteredIsolate + Locker support for pooling)
v8 = { package = "openworkers-v8", version = "146.8.0" }
# Async runtime
tokio = { version = "1.49.0", features = ["full"] }
tokio-util = { version = "0.7", features = ["rt"] }
futures = "0.3"
# Logging & Tracing
tracing = "0.1"
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# V8 serialization (for automatic Rust <-> JS type conversion)
serde_v8 = { package = "openworkers-serde-v8", version = "146" }
# V8 Glue - binding macros
glue_v8 = { package = "openworkers-glue-v8", version = "146" }
# HTTP types
bytes = { version = "1.11", features = ["serde"] }
# Text encoding (UTF-8, UTF-16, etc.)
encoding_rs = "0.8"
# Crypto
ring = "0.17"
uuid = { version = "1", features = ["v4"] }
# CPU time measurement (Unix only)
[target.'cfg(unix)'.dependencies]
libc = "0.2.180"
# Signal handling (for CPU time enforcement on Linux)
[target.'cfg(target_os = "linux")'.dependencies]
signal-hook = "0.4.1"
signal-hook-tokio = { version = "0.4.0", features = ["futures-v0_3"] }
tokio-stream = "0.1"
[dev-dependencies]
ntest = "0.9.5"
criterion = { version = "0.8", features = ["async_tokio"] }
rand = "0.9"