[package]
edition = "2024"
rust-version = "1.97.1"
name = "asimov-http"
version = "25.9.0"
authors = ["ASIMOV Systems <support@asimov.systems>"]
build = false
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "HTTP message integrity and shared client proxy configuration"
homepage = "https://sdk.asimov.sh"
readme = "README.md"
keywords = [
"asimov",
"sdk",
"ai",
"osint",
]
categories = []
license = "Unlicense"
repository = "https://github.com/asimov-platform/asimov.rs"
resolver = "2"
[package.metadata.readme]
title = "ASIMOV.rs: HTTP Support"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
all = ["integrity"]
default = [
"all",
"std",
]
hyper = [
"system-proxy",
"dep:http",
"dep:hyper-util",
"hyper-util/client-proxy",
]
integrity = [
"std",
"dep:thiserror",
"dep:iroh-base",
"dep:bs58",
"dep:bytes",
"bytes/std",
"dep:getrandom",
"dep:http",
"dep:http-body",
"dep:sfv",
"dep:url",
]
proxy = [
"dep:thiserror",
"dep:url",
]
reqwest = [
"system-proxy",
"dep:reqwest",
"reqwest/socks",
"dep:tokio",
"tokio/rt",
]
std = [
"base64/std",
"sha2/std",
"thiserror?/std",
"bytes?/std",
"url?/std",
]
system-proxy = [
"std",
"proxy",
"dep:plist",
"dep:proxy-watch",
"dep:system-configuration",
"dep:windows-registry",
]
[lib]
name = "asimov_http"
path = "src/lib.rs"
[[example]]
name = "client"
path = "examples/client.rs"
required-features = ["integrity"]
[[example]]
name = "server"
path = "examples/server.rs"
required-features = ["integrity"]
[[test]]
name = "conformance"
path = "tests/conformance.rs"
[[test]]
name = "digest"
path = "tests/digest.rs"
[[test]]
name = "streaming"
path = "tests/streaming.rs"
[dependencies.base64]
version = "0.23"
features = ["alloc"]
default-features = false
[dependencies.bs58]
version = "0.5"
features = ["alloc"]
optional = true
default-features = false
[dependencies.bytes]
version = "1.10"
optional = true
default-features = false
[dependencies.getrandom]
version = "0.4"
optional = true
default-features = false
[dependencies.http]
version = "1.5.0"
optional = true
default-features = false
[dependencies.http-body]
version = "1.1.0"
optional = true
default-features = false
[dependencies.hyper-util]
version = "0.1.21"
optional = true
default-features = false
[dependencies.iroh-base]
version = "1.2"
features = ["key"]
optional = true
default-features = false
[dependencies.reqwest]
version = "0.13.5"
features = [
"json",
"rustls",
]
optional = true
default-features = false
[dependencies.sfv]
version = "0.15"
features = ["parsed-types"]
optional = true
default-features = false
[dependencies.sha2]
version = "0.10"
default-features = false
[dependencies.thiserror]
version = "2"
optional = true
default-features = false
[dependencies.tokio]
version = "1.53.3"
optional = true
default-features = false
[dependencies.url]
version = "2.5"
optional = true
default-features = false
[dev-dependencies.async-stream]
version = "0.3"
default-features = false
[dev-dependencies.http-body-util]
version = "0.1.5"
default-features = false
[dev-dependencies.hyper]
version = "1.12.0"
features = [
"client",
"server",
"http1",
"http2",
]
default-features = false
[dev-dependencies.hyper-util]
version = "0.1.21"
features = [
"server-auto",
"tokio",
]
default-features = false
[dev-dependencies.proxy-watch]
version = "0.3.1"
features = ["resolve"]
default-features = false
[dev-dependencies.rcgen]
version = "0.14"
features = [
"crypto",
"ring",
]
default-features = false
[dev-dependencies.rustls]
version = "0.23.46"
features = [
"ring",
"std",
"tls12",
]
default-features = false
[dev-dependencies.rustls-platform-verifier]
version = "0.7.1"
default-features = false
[dev-dependencies.tempfile]
version = "3.20"
default-features = false
[dev-dependencies.tokio]
version = "1.53.3"
features = [
"io-util",
"macros",
"rt",
"net",
"sync",
"time",
]
default-features = false
[dev-dependencies.tokio-rustls]
version = "0.26.6"
default-features = false
[target.'cfg(any(windows, target_os = "linux"))'.dependencies.proxy-watch]
version = "0.3.1"
features = [
"resolve",
"linux-gnome",
"linux-kde",
]
optional = true
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.plist]
version = "1.10.1"
optional = true
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.system-configuration]
version = "0.8.0"
optional = true
default-features = false
[target."cfg(windows)".dependencies.windows-registry]
version = "0.6.1"
optional = true
default-features = false