[package]
edition = "2021"
rust-version = "1.83"
name = "kode-bridge"
version = "0.4.0"
authors = ["Tunglies"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Modern HTTP Over IPC library for Rust with both client and server support (Unix sockets, Windows named pipes)."
readme = "README.md"
keywords = [
"http",
"ipc",
"bridge",
"async",
"performance",
]
categories = [
"network-programming",
"web-programming",
"api-bindings",
"asynchronous",
]
license = "Apache-2.0"
repository = "https://github.com/KodeBarinn/kode-bridge"
[features]
client = []
default = ["client"]
full = [
"client",
"server",
]
server = ["path-tree"]
[lib]
name = "kode_bridge"
path = "src/lib.rs"
[[example]]
name = "concurrent_proxy_test"
path = "examples/concurrent_proxy_test.rs"
[[example]]
name = "elegant_http"
path = "examples/elegant_http.rs"
[[example]]
name = "elegant_stream"
path = "examples/elegant_stream.rs"
[[example]]
name = "http_server"
path = "examples/http_server.rs"
required-features = ["server"]
[[example]]
name = "metrics_demo"
path = "examples/metrics_demo.rs"
[[example]]
name = "modern_example"
path = "examples/modern_example.rs"
[[example]]
name = "proxy"
path = "examples/proxy.rs"
[[example]]
name = "quick_put_test"
path = "examples/quick_put_test.rs"
[[example]]
name = "request"
path = "examples/request.rs"
[[example]]
name = "request_large"
path = "examples/request_large.rs"
[[example]]
name = "server"
path = "examples/server.rs"
required-features = ["server"]
[[example]]
name = "stream_server"
path = "examples/stream_server.rs"
required-features = ["server"]
[[example]]
name = "traffic"
path = "examples/traffic.rs"
[[example]]
name = "traffic_monitor"
path = "examples/traffic_monitor.rs"
[[example]]
name = "two_clients"
path = "examples/two_clients.rs"
[[bench]]
name = "bench_version"
path = "benches/bench_version.rs"
harness = false
required-features = ["full"]
[dependencies.bytes]
version = "1.11"
[dependencies.futures]
version = "0.3"
[dependencies.http]
version = "1.4"
[dependencies.httparse]
version = "1.10"
[dependencies.interprocess]
version = "2.4"
features = ["tokio"]
[dependencies.parking_lot]
version = "0.12"
[dependencies.path-tree]
version = "0.8"
optional = true
[dependencies.pin-project-lite]
version = "0.2"
[dependencies.rand]
version = "0.10"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.49.0"
features = [
"rt",
"rt-multi-thread",
"io-util",
"sync",
"time",
"macros",
"signal",
]
[dependencies.tokio-stream]
version = "0.1"
features = ["io-util"]
[dependencies.tokio-util]
version = "0.7"
features = [
"codec",
"io",
]
[dependencies.toml]
version = "0.9"
[dependencies.tracing]
version = "0.1"
[dependencies.url]
version = "2.5"
[dev-dependencies.async-trait]
version = "0.1.89"
[dev-dependencies.chrono]
version = "0.4.42"
features = [
"std",
"clock",
]
default-features = false
[dev-dependencies.criterion]
version = "=0.8.1"
features = ["async_tokio"]
[dev-dependencies.dotenvy]
version = "0.15.7"
[dev-dependencies.tracing-subscriber]
version = "0.3.22"
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[target."cfg(windows)".dependencies.widestring]
version = "1.2"
[lints.clippy]
async_yields_async = "deny"
await_holding_lock = "deny"
branches_sharing_code = "deny"
clone_on_ref_ptr = "warn"
cloned_instead_of_copied = "deny"
cognitive_complexity = "deny"
collection_is_never_read = "deny"
copy_iterator = "deny"
dbg_macro = "warn"
equatable_if_let = "deny"
expect_used = "warn"
expl_impl_clone_on_copy = "deny"
future_not_send = "deny"
iter_on_empty_collections = "deny"
iter_on_single_items = "deny"
iter_with_drain = "deny"
large_const_arrays = "warn"
large_futures = "deny"
large_stack_arrays = "warn"
large_types_passed_by_value = "deny"
missing_const_for_fn = "deny"
mutex_atomic = "deny"
mutex_integer = "deny"
needless_collect = "deny"
needless_continue = "deny"
needless_pass_by_ref_mut = "deny"
needless_raw_string_hashes = "deny"
option_as_ref_cloned = "deny"
or_fun_call = "deny"
panic = "deny"
pathbuf_init_then_push = "deny"
rc_clone_in_vec_init = "warn"
rc_mutex = "deny"
redundant_clone = "deny"
redundant_else = "deny"
significant_drop_in_scrutinee = "deny"
significant_drop_tightening = "deny"
string_lit_as_bytes = "deny"
suspicious_operation_groupings = "deny"
todo = "warn"
trait_duplication_in_bounds = "deny"
tuple_array_conversions = "deny"
unimplemented = "deny"
unnecessary_self_imports = "deny"
unnecessary_wraps = "deny"
unused_async = "deny"
unused_trait_names = "deny"
unwrap_used = "warn"
use_self = "deny"
useless_let_if_seq = "deny"
wildcard_imports = "deny"
[lints.clippy.correctness]
level = "deny"
priority = -1
[lints.clippy.suspicious]
level = "deny"
priority = -1