swadhinbiswas 📦 release: crates.io publish prep — metadata, versions on path-deps, bin renamed to justapi-cli · 8/8/2026
f47a45e
97 lines · 3.3 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
[package]
name = "justapi-core"
description = "JustAPI core — tokio/hyper networking, matchit router, middleware, validation, serialization, sqlx DB pool."
version.workspace = true
edition.workspace = true
license.workspace = true

[features]
default = ["opentelemetry"]
tls = ["rustls", "tokio-rustls", "rustls-pemfile"]
ws = ["tokio-tungstenite", "sha1"]
http3 = ["dep:h3", "dep:h3-quinn", "dep:quinn", "tls"]
compression = []
brotli-compression = ["compression", "brotli"]
zstd-compression = ["compression", "zstd"]
opentelemetry = ["dep:opentelemetry", "dep:opentelemetry_sdk", "dep:opentelemetry-stdout", "dep:opentelemetry-otlp", "dep:tracing-opentelemetry"]
db = ["sqlx", "chrono"]
inference = ["justapi-inference"]
mail = ["dep:lettre", "dep:minijinja"]
orjson = []
wasm = ["dep:wasmtime"]
graphql = ["dep:async-graphql"]
grpc = ["dep:tonic", "dep:prost"]
redis-rate-limit = ["dep:redis"]

[dependencies]
tokio.workspace = true
hyper.workspace = true
hyper-util.workspace = true
http-body-util.workspace = true
serde = { workspace = true, features = ["derive"] }
serde_json.workspace = true
serde_urlencoded.workspace = true
quick-xml.workspace = true
tracing.workspace = true
tracing-subscriber = { workspace = true, features = ["env-filter", "json"] }
tracing-appender.workspace = true
anyhow.workspace = true
thiserror.workspace = true
matchit.workspace = true
async-trait.workspace = true
jsonwebtoken.workspace = true
governor.workspace = true
futures = "0.3"
tokio-util.workspace = true
flate2.workspace = true
brotli = { workspace = true, optional = true }
zstd = { workspace = true, optional = true }
opentelemetry = { workspace = true, optional = true }
opentelemetry_sdk = { workspace = true, optional = true }
opentelemetry-stdout = { workspace = true, optional = true }
opentelemetry-otlp = { workspace = true, optional = true }
tracing-opentelemetry = { workspace = true, optional = true }
simd-json = { workspace = true, optional = true }
tokio-tungstenite = { workspace = true, optional = true }
tokio-stream.workspace = true
sha1 = { workspace = true, optional = true }
base64 = { workspace = true }
jsonschema.workspace = true
rustls = { workspace = true, optional = true }
tokio-rustls = { workspace = true, optional = true }
rustls-pemfile = { workspace = true, optional = true }
sqlx = { workspace = true, optional = true }
chrono = { version = "0.4", optional = true }
rand = "0.8"
inventory = "0.3.24"
tonic = { version = "0.14.6", optional = true }
prost = { version = "0.14.4", optional = true }
tower = "0.5.3"
http = "1.4.2"
http-body = "1.0"
multer = "3.1"
bytes = "1.12.0"
wasmtime = { version = "47.0.3", optional = true }
redis = { version = "1.3.0", features = ["tokio-comp", "connection-manager"], optional = true }
notify = "8.2.0"
arc-swap = "1.9.2"
async-graphql = { version = "7.2.1", optional = true }
justapi-inference = { version = "2.0.9", path = "../justapi-inference", optional = true }
tempfile = "3.27.0"
lettre = { workspace = true, optional = true }
minijinja = { workspace = true, optional = true }
h3 = { workspace = true, optional = true }
h3-quinn = { workspace = true, optional = true }
quinn = { workspace = true, optional = true }
rustls-pki-types.workspace = true

[dev-dependencies]
proptest = "1"
futures = "0.3"
serde_json.workspace = true
tokio-tungstenite = { workspace = true, features = [] }
rcgen = "0.13"

[build-dependencies]
tonic-build = "0.14.6"