nigig-org/nimanyatta/Cargo.toml
arena-agent f9c12359bf
Some checks failed
repo hygiene / hygiene (push) Has been cancelled
nimanyatta: drop vendored xitca-web, use crates.io sources
Delete the vendored xitca-web framework checkout at repo root and
repoint all consumers at the published crates:

- nimanyatta/Cargo.toml: drop path overrides on xitca-web (deps +
  dev-deps), remove the xitca-client dep (never published on
  crates.io) from the manifest and the load/b_server features, and
  remove the [patch.crates-io] section that forced every xitca-*
  crate onto the vendored checkout.
- nigig-lite/crates/common: xitca-web path dep -> version 0.8 from
  crates.io (vendored snapshot was 0.8.1, identical).
- Test suites (shared_test_client, security_suite, enhanced_security,
  enhanced_security_tests) and kra-etims-sdk: migrate xitca-client
  HTTP usage to reqwest from crates.io, preserving request
  semantics (header-override order, error mapping).

Verified in a fresh clone on the pinned toolchain (1.97.1):
nigig-common checks, security/enhanced suites check, and the
session/fast/regression harness binaries build.
2026-09-26 17:16:51 +00:00

429 lines
11 KiB
TOML

[package]
name = "nimanyatta"
version = "0.1.0"
edition = "2024"
[dependencies]
nimanyatta-protocol = { path = "./crates/nimanyatta-protocol", optional = true}
nigig-common = { path = "../nigig-lite/crates/common", optional = true }
clap = { version = "4.5", optional = true }
# Web framework
xitca-web = { version = "0.8", features = [
"codegen",
"params",
"logger",
"websocket",
"cookie",
"json",
"rate-limit",
"tower-http-compat",
], optional = true }
xitca-server = { version = "0.7", optional = true }
xitca-http = { version = "0.9.3", features = ["http1", "http2", "http3", "openssl", "rustls"], optional = true }
xitca-service = {version = "0.3", optional = true}
tower-http = { version = "0.6.8", features = ["cors", "trace"], optional = true }
http-ws = { version = "0.3.0", features = ["stream"], optional = true }
http-body-util = { version = "0.1.0-rc.3", optional = true }
futures = { version = "0.3.31", optional = true }
tokio = { version = "1", features = [
"rt",
"rt-multi-thread",
"sync",
"macros",
"time",
], optional = true }
flume = { version = "0.12.0", optional = true }
pingora-core = { version = "0.6.0", optional = true }
pingora-proxy = { version = "0.6.0", optional = true }
pingora-load-balancing = { version = "0.6.0", optional = true }
pingora-http = { version = "0.6.0", optional = true }
pingora-cache = { version = "0.6.0", optional = true }
pingora-limits = { version = "0.6.0", optional = true }
once_cell = { version = "1.21.3", optional = true }
async-trait = { version = "0.1.83", optional = true }
log = { version = "0.4.27", optional = true }
env_logger = { version = "0.11.8", optional = true }
bytes = { version = "1", optional = true }
rand = { version = "0.8", optional = true }
futures-util = { version = "0.3.31", optional = true }
tokio-tungstenite = { version = "0.27", optional = true }
tokio-util = { version = "0.7", optional = true }
sysinfo = { version = "0.37.0", optional = true }
url = { version = "2.5", optional = true }
lettre = { version = "0.11.18", default-features = false, features = [
"tokio1",
"tokio1-native-tls",
"smtp-transport",
"pool",
"hostname",
"builder",
], optional = true }
error_set = { version = "0.9.1", optional = true }
dashmap = { version = "6.1.0", optional = true }
chrono = { version = "0.4.41", features = ["serde"], optional = true }
tungstenite = { version = "0.27.0", optional = true }
ulid = { version = "1.2.1", features = ["serde"], optional = true }
libc = { version = "0.2.175", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
serde_json = { version = "1.0", optional = true }
iggy = { version = "0.7.0", optional = true }
postcard = { version = "1.1.3", features = ["use-std"], optional = true }
atomic_float = { version = "1.1.0", optional = true }
tracing = { version = "0.1.41", optional = true }
tracing-subscriber = { version = "0.3.20", features = [
"env-filter",
"json",
"fmt",
"ansi",
], optional = true }
tracing-appender = { version = "0.2", optional = true }
tracing-bunyan-formatter = { version = "0.3.10", optional = true }
metrics = { version = "0.24.2", optional = true }
metrics-exporter-prometheus = { version = "0.17.2", optional = true }
tracing-opentelemetry = { version = "0.31", optional = true }
opentelemetry = { version = "0.30", features = [
"trace",
"logs",
"metrics",
], optional = true }
opentelemetry_sdk = { version = "0.30", features = [
"trace",
"metrics",
"rt-tokio",
"logs",
"trace",
"tokio",
"experimental_async_runtime",
"experimental_logs_batch_log_processor_with_async_runtime",
"experimental_trace_batch_span_processor_with_async_runtime",
], optional = true }
opentelemetry-otlp = { version = "0.30", features = [
"tonic",
"metrics",
"logs",
"trace",
"grpc-tonic",
"http",
"http-proto",
"reqwest-client",
"tokio",
], optional = true }
opentelemetry-semantic-conventions = { version = "0.30", optional = true }
tracing-futures = { version = "0.2", optional = true }
prometheus-client = { version = "0.23.1", optional = true }
tracing-serde = { version = "0.2", optional = true }
reqwest = { version = "0.12.23", features = ["json"], optional = true }
moka = { version = "0.12.10", features = ["future"], optional = true }
xxhash-rust = { version = "0.8.15", features = ["xxh3"], optional = true }
crossbeam-channel = { version = "0.5.15", optional = true }
crossbeam-queue = { version = "0.3.12", optional = true }
# [target.'cfg(target_os = "linux")'.dependencies]
# tokio-uring = { version = "0.5.0", optional = true }
# io-uring = { version = "0.7.10", optional = true }
# nix = { version = "0.29", features = ["fs"], optional = true }
surrealdb = { version = "3.0.5", features = [ "kv-rocksdb", "kv-mem" ], optional = true }
# surrealdb = { version = "2.6.0", features = ["kv-mem", "kv-rocksdb"] }
scylla = { version = "1.6.0", optional = true }
rusty_paseto = { version = "0.9", optional = true }
# rusty_paseto = "0.9.0"
sha2 = { version = "0.11.0", optional = true }
# sha2 = "0.11.0"
argon2 = { version = "0.5", features = [ "std" ], optional = true }
hex = { version = "0.4", optional = true }
base64 = { version = "0.22", optional = true }
parking_lot = { version = "0.12", optional = true }
# Config
dotenvy = { version = "0.15", optional = true }
phonenumber = { version = "0.3", optional = true }
# Geolocation
maxminddb = { version = "0.23", optional = true }
# Multi-tenant (module, not crate)
toml = { version = "0.8", optional = true }
# Already present but confirm it's in b_server:
# ulid, serde, serde_json, tokio, tracing, dashmap, chrono
# Already present but confirm it's in b_server:
# ulid, serde, serde_json, tokio, tracing, dashmap, chrono
[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
xitca-web = { version = "0.8", features = ["websocket"] }
reqwest = { version = "0.12.23", default-features = false, features = ["json"] }
serde_json = "1"
serde = { version = "1", features = ["derive"] }
tokio = { version = "1", features = [
"macros",
"rt-multi-thread",
"process",
"sync",
"time",
] }
tokio-tungstenite = "0.27"
futures-util = "0.3.31"
[features]
# The 'server' feature enables the xitca-web dependency
server = ["xitca-web"]
# io_uring feature - only makes sense on Linux
# io_uring = []
uring = ["xitca-server/io-uring", "xitca-http/io-uring"]
# Linux-specific io_uring activation
# io_uring_linux = ["tokio-uring", "io-uring", "nix"]
load = [
"chrono",
"tokio",
"tokio-tungstenite",
"futures",
"futures-util",
"tungstenite",
"libc",
"postcard",
"serde",
"serde_json",
"reqwest",
"rand",
"ulid",
"nimanyatta-protocol",
"nigig-common",
"tracing",
"tracing-subscriber",
"url",
"clap",
]
gty_server = [
"xitca-web",
"async-trait",
"moka",
"xxhash-rust",
"xitca-server",
"xitca-http",
"reqwest",
"tracing",
"xitca-http",
"tokio",
"atomic_float",
"chrono",
"rand",
"serde",
"serde_json",
"http-ws",
"futures-util",
"http-body-util",
"tokio-tungstenite",
"sysinfo",
"prometheus-client",
"lettre",
"dashmap",
"libc",
"once_cell",
"futures",
"bytes",
"postcard",
"iggy",
]
b_server = [
"xitca-web",
"nimanyatta-protocol",
"nigig-common",
"tower-http",
"error_set",
"iggy",
"tokio",
"flume",
"moka",
"xxhash-rust",
"async-trait",
"xitca-server",
"xitca-http",
"xitca-service",
"reqwest",
"atomic_float",
"chrono",
"rand",
"base64",
"serde",
"serde_json",
"http-ws",
"futures-util",
"http-body-util",
"tokio-tungstenite",
"sysinfo",
"prometheus-client",
"tracing",
"tracing-subscriber",
"tracing-bunyan-formatter",
"tracing-opentelemetry",
"opentelemetry",
"opentelemetry_sdk",
"opentelemetry-otlp",
"opentelemetry-semantic-conventions",
"tracing-futures",
"tracing-serde",
"lettre",
"dashmap",
"libc",
"once_cell",
"futures",
"bytes",
"postcard",
"crossbeam-channel",
"crossbeam-queue",
"ulid",
"tracing-appender",
"surrealdb",
"rusty_paseto",
"hex",
"parking_lot",
"dotenvy",
"phonenumber",
"argon2",
"scylla",
"tokio-util",
"sha2",
"maxminddb",
"toml",
# "tenant", // tenant is a module in src/, not a crate
]
# b_server_linux = ["b_server", "io_uring", "io_uring_linux"]
# The 'proxy' feature enables all pingora dependencies
proxy = [
"pingora-core",
"pingora-proxy",
"pingora-load-balancing",
"pingora-http",
"pingora-cache",
"pingora-limits",
"async-trait",
"once_cell",
"tokio",
"bytes",
"log",
"env_logger",
"dashmap",
"ulid",
]
# default = ["server", "proxy"]
[[bin]]
name = "broadcast_server"
path = "src/broadcast_server.rs"
required-features = ["b_server"]
[[bin]]
name = "chat_load_tester"
path = "src/chat_load_tester.rs"
# path = "src/enhanced_security.rs"
required-features = ["load"]
[[bin]]
name = "chat_load_tester_consistency"
path = "src/chat_load_tester_consistency.rs"
required-features = ["load"]
[[bin]]
name = "chat_load_tester_realistic"
path = "src/chat_load_tester_realistic.rs"
required-features = ["load"]
[[bin]]
name = "proxy"
path = "src/proxy/mod.rs"
required-features = ["proxy"]
# [[bin]]
# name = "proxy"
# path = "src/proxy.rs"
# required-features = ["proxy"]
[[bin]]
name = "fast_integration_suite"
path = "src/fast_integration_suite.rs"
required-features = ["load"]
[[bin]]
name = "security_suite"
path = "src/security_suite.rs"
required-features = ["load"]
[[bin]]
name = "regression_suite"
path = "src/regression_suite.rs"
required-features = ["load"]
[[bin]]
name = "session_limit_test"
path = "src/session_limit_test.rs"
required-features = ["load"]
[[bin]]
name = "enhanced_security"
path = "src/enhanced_security.rs"
required-features = ["load"]
[[bin]]
name = "enhanced_security_tests"
path = "src/enhanced_security_tests.rs"
required-features = ["load"]
[[bin]]
name = "multi_tenant_suite"
path = "src/multi_tenant_suite.rs"
required-features = ["load"]
[[bin]]
name = "ws_tenant_suite"
path = "src/ws_tenant_suite.rs"
required-features = ["load"]
[[bin]]
name = "tenant_security_suite"
path = "src/tenant_security_suite.rs"
required-features = ["load"]
[[bin]]
name = "gologin"
path = "src/gologin.rs"
required-features = ["load"]
[profile.release]
lto = true
codegen-units = 1
panic = "abort"
opt-level = 3
strip = "debuginfo"
[profile.bench]
inherits = "release"
debug = true
[[bench]]
name = "latency"
harness = false
required-features = ["b_server"]
[[bench]]
name = "bandwidth"
harness = false
required-features = ["b_server"]
[[bench]]
name = "gateway"
harness = false
required-features = ["b_server"]
# nimanyatta is a standalone workspace: it must not be absorbed by the
# nigig-org root workspace (its deps resolve relative to this directory).
[workspace]