swadhinbiswas ✨ feat: ORJSON optional Rust-level serializer — Cargo + pyproject + app.rs handler · 7/25/2026
199e6f0
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
[package]
name = "justapi-core"
version.workspace = true
edition.workspace = true
license.workspace = true
[features]
default = ["opentelemetry"]
tls = ["rustls", "tokio-rustls", "rustls-pemfile"]
ws = ["tokio-tungstenite", "sha1"]
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 = []
[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
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 = "0.14.6"
prost = "0.14.4"
tower = "0.5.3"
http = "1.4.2"
http-body = "1.0"
multer = "3.1"
bytes = "1.12.0"
wasmtime = "46.0.1"
redis = { version = "1.3.0", features = ["tokio-comp", "connection-manager"] }
notify = "8.2.0"
arc-swap = "1.9.2"
async-graphql = "7.2.1"
justapi-inference = { path = "../justapi-inference", optional = true }
tempfile = "3.27.0"
lettre = { workspace = true, optional = true }
minijinja = { workspace = true, optional = 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"