-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
134 lines (117 loc) · 3.65 KB
/
Copy pathCargo.toml
File metadata and controls
134 lines (117 loc) · 3.65 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
131
132
133
134
[package]
name = "jackdaw"
version = "0.1.1"
edition = "2024"
authors = ["Armin Graf"]
description = "A durable, cached, graph-based execution engine for Serverless Workflow"
documentation = "https://docs.rs/jackdaw"
readme = "README.md"
repository = "https://github.com/arminhammer/jackdaw"
license = "Apache-2.0"
keywords = ["serverless", "workflow", "engine", "durable", "orchestration"]
categories = ["development-tools", "asynchronous"]
[lib]
name = "jackdaw"
crate-type = ["rlib", "cdylib"]
[dependencies]
serde = { version = "=1.0.219", features = ["derive"] }
serde_json = "=1.0.120"
serde_yaml = "0.9"
tokio = { version = "1", features = ["full"] }
clap = { version = "4", features = ["derive", "env"] }
config = "0.15.15"
tracing-indicatif = "0.3"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
indicatif = "0.17"
indicatif-log-bridge = "0.2"
snafu = "0.8.9"
serverless_workflow_core = { git = "https://github.com/serverlessworkflow/sdk-rust.git", rev = "12d7c5b2ef76bc5186f949e3a3d649db6a3f3ba5" }
console = "0.15"
tempfile = "3"
chrono = { version = "0.4", features = ["serde"] }
async-trait = "0.1"
jaq-interpret = "1.2"
jaq-parse = "1.0"
jaq-core = "2.2.1"
jaq-std = "2.1"
jaq-json = { version = "1.1.3", features = ["serde_json"] }
regex = "1"
uuid = { version = "1", features = ["v4"] }
bytes = "1"
axum = "0.7.5" # Pinned to avoid serde 1.0.228+ which breaks swc_config 3.0.0
base64 = "0.22"
tonic = "0.14"
tonic-reflection = "0.14"
prost = "0.13"
prost-reflect = { version = "0.14", features = ["serde"] }
prost-types = "0.13"
protox = "0.7"
tower = "0.5"
http = "1"
http-body = "1"
http-body-util = "0.1"
openapiv3-extended = { version = "6.0", features = ["v2"] }
redb = "2"
sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite", "postgres", "chrono", "json", "uuid"] }
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "http2"] }
bollard = "0.18"
petgraph = "0.6"
async-recursion = "1.0"
futures = "0.3"
sha2 = "0.10.9"
hyper = { version = "1.8.1", features = ["server"] }
hyper-util = { version = "0.1", features = ["tokio", "server", "server-auto"] }
# Optional Python bindings
pyo3 = { version = "0.21", optional = true, features = ["extension-module"] }
pyo3-asyncio-0-21 = { version = "0.21", optional = true, features = ["tokio-runtime"] }
[features]
default = []
python = ["pyo3", "pyo3-asyncio-0-21"]
[dev-dependencies]
cucumber = "0.21"
testcontainers = "0.23"
testcontainers-modules = { version = "0.11", features = ["postgres"] }
wiremock = "0.6.5"
serial_test = "3"
[[test]]
name = "ctk_conformance"
harness = false
[[test]]
name = "listener_tests"
harness = false
[[test]]
name = "nested_workflow_tests"
harness = false
[[test]]
name = "example_tests"
harness = false
[[test]]
name = "validate_tests"
[[test]]
name = "docker_integration_tests"
required-features = []
[[bin]]
name = "jackdaw"
path = "src/main.rs"
required-features = []
test = false # Don't run tests when testing the binary target
# Optimized release profile for smaller, faster binaries
[profile.release]
opt-level = "z" # Optimize for size
lto = true # Enable Link Time Optimization
codegen-units = 1 # Better optimization, slower compile
strip = true # Strip symbols from binary
panic = "abort" # Smaller binary, no unwinding
# Profile for release with debug info (useful for profiling production issues)
[profile.release-with-debug]
inherits = "release"
strip = false
debug = true
[lints.clippy]
indexing_slicing = "deny"
fallible_impl_from = "deny"
wildcard_enum_match_arm = "deny"
unneeded_field_pattern = "deny"
fn_params_excessive_bools = "deny"
must_use_candidate = "deny"