AI Skill Hub 推荐使用:开源AI工具:Rust HTTP客户端 是一款优质的AI工具。AI 综合评分 7.5 分,在同类工具中表现稳健。如果你正在寻找可靠的AI工具解决方案,这是一个值得深入了解的选择。
Specter是开源的Rust HTTP客户端,支持Chrome指纹识别,帮助开发者绕过安全限制,实现自动化测试和爬虫任务。
开源AI工具:Rust HTTP客户端 是一款基于 Rust 开发的开源工具,专注于 Rust、HTTP客户端、Chrome指纹识别 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
Specter是开源的Rust HTTP客户端,支持Chrome指纹识别,帮助开发者绕过安全限制,实现自动化测试和爬虫任务。
开源AI工具:Rust HTTP客户端 是一款基于 Rust 开发的开源工具,专注于 Rust、HTTP客户端、Chrome指纹识别 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
# 方式一:cargo install(推荐) cargo install specter # 方式二:从源码编译 git clone https://github.com/jaredboynton/specter cd specter cargo build --release # 二进制在 ./target/release/specter
# 查看帮助 specter --help # 基本运行 specter [options] <input> # 详细使用说明请查阅文档 # https://github.com/jaredboynton/specter
# specter 配置说明 # 查看配置选项 specter --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export SPECTER_CONFIG="/path/to/config.yml"
Rust HTTP client with Chrome-accurate fingerprints across TLS, HTTP/1.1, HTTP/2, HTTP/3, and WebSockets - automation that looks like a real browser on the wire.
use specter::{Client, FingerprintProfile};
use specter::fingerprint::http2::Http2Settings;
use specter::transport::h2::PseudoHeaderOrder;
use std::time::Duration;
let client = Client::builder()
.fingerprint(FingerprintProfile::Chrome148)
.prefer_http2(true) // advertise h2 first and reuse pooled connections
.timeout(Duration::from_secs(30))
.http2_settings(Http2Settings::default())
.pseudo_order(PseudoHeaderOrder::Chrome)
.h3_upgrade(true) // cache Alt-Svc upgrades
.build()?;
fingerprint(FingerprintProfile::Chrome148) selects profile-derived TLS, HTTP/2, and HTTP/3 behavior for the implemented Chrome 148 milestone. Other versions available: Chrome142 through Chrome147, Firefox stable Firefox133 through Firefox151, and Firefox ESR FirefoxEsr115, FirefoxEsr128, FirefoxEsr140. Use .user_agent(...), .default_headers(...), or specter::headers::* helpers when you need exact User-Agent or request header presets; .fingerprint(...) does not inject per-request headers by itself.prefer_http2(true) keeps HTTP/1.1 available through ALPN but defaults to pooled HTTP/2.timeout(...) adds a global request timeout enforced across all transports.http2_settings(...) / pseudo_order(...) let you override SETTINGS frames and pseudo header ordering when you need to mimic a different browser or experiment with fingerprints.h3_upgrade(false) disables Alt-Svc based HTTP/3 upgrades if you want deterministic TCP-only behavior.brew install pre-commit # or: pip install pre-commit
pre-commit install
After installation, `cargo fmt` and `cargo clippy` will run automatically on each commit. To run manually:
bash pre-commit run --all-files ```
Specter's native HTTP/3 path also has a local same-fixture comparator matrix against quiche, tokio-quiche, h3-quinn, and reqwest HTTP/3. The n=100 artifact 2026-05-25-rfc9220-suite-n100.json passes the H3 superiority gate with all required comparator rows present:
| Client | Role | p50 TTFT | p95 TTFT | Throughput |
|---|---|---|---|---|
| Specter native H3 | HTTP/3 client | 0.300 ms | 0.808 ms | 9.48 MiB/s |
| reqwest_h3 | HTTP/3 client | 1.149 ms | 3.317 ms | 7.48 MiB/s |
| h3-quinn | HTTP/3 client | 1.018 ms | 2.413 ms | 7.78 MiB/s |
| quiche direct | HTTP/3 client | 2.812 ms | 3.227 ms | 6.91 MiB/s |
| tokio-quiche | HTTP/3 client | 3.483 ms | 4.198 ms | 6.20 MiB/s |
That gate is explicitly for HTTP/3 request/response workloads. quinn_transport and s2n_quic_transport are separate QUIC transport-only evidence, not H3 HTTP comparator rows. Native QUIC recovery, fallback, browser ACK parity, capture presets, and capacity-policy hardening are tracked as closed regression guards in docs/specter-native-h3-remaining-seams.md.
The same matrix now persists a dedicated rfc9220_full_suite_superiority_gate against low-level quiche and tokio-quiche raw byte tunnels. The n=100 artifact 2026-05-25-rfc9220-suite-n100.json passes that gate (specter_native_rfc9220_tunnel_suite_is_faster_than_required_rfc9220_tunnel_competitors) at 1 KiB payloads:
| Client | Workload | p50 TTFT | p95 TTFT | Throughput | n |
|---|---|---|---|---|---|
| Specter native (RFC 9220 tunnel) | echo | 0.218 ms | 0.322 ms | 4.16 MiB/s | 100 |
| quiche direct (RFC 9220 tunnel) | echo | 2.734 ms | 2.803 ms | 352 KiB/s | 100 |
| tokio-quiche (RFC 9220 tunnel) | echo | 4.243 ms | 5.135 ms | 231 KiB/s | 100 |
| Specter native (RFC 9220 tunnel) | client DATA+FIN / server FIN | 0.226 ms | 1.846 ms | 2.40 MiB/s | 100 |
| quiche direct (RFC 9220 tunnel close) | client DATA+FIN / server FIN | 2.746 ms | 2.795 ms | 357 KiB/s | 100 |
| tokio-quiche (RFC 9220 tunnel close) | client DATA+FIN / server FIN | 4.288 ms | 5.661 ms | 217 KiB/s | 100 |
| Specter native (RFC 9220 tunnel) | slow-consumer mixed | 1.054 ms | 2.104 ms | 1.09 MiB/s | 100 |
| quiche direct (RFC 9220 tunnel mixed) | slow-consumer mixed | 2.831 ms | 3.270 ms | 630 KiB/s | 100 |
| tokio-quiche (RFC 9220 tunnel mixed) | slow-consumer mixed | 93.135 ms | 98.327 ms | 725 KiB/s | 100 |
h3-quinn, reqwest_h3, tokio-tungstenite, and reqwest remain explicit unsupported_by_client capability rows because none expose an RFC 9220 Extended CONNECT raw byte tunnel API. Specter adapters reuse one client across samples; low-level comparators open a fresh QUIC connection per sample.
Specter also ships a local RFC 6455 echo benchmark, benches/websocket_vs_fastwebsockets.rs, against fastwebsockets 0.10.0 and tokio-tungstenite 0.24.
From docs/benchmarks/websocket-vs-fastwebsockets/2026-05-24-final.json, using 5,000 measured 1 KiB binary echoes after 500 warmups:
| Client | Messages/sec | Throughput |
|---|---|---|
| Specter | 61,152 | 59.72 MiB/s |
| tokio-tungstenite | 60,489 | 59.07 MiB/s |
| fastwebsockets | 54,701 | 53.42 MiB/s |
The gate requires Specter to match or exceed both baselines; this run passed at +11.79% vs fastwebsockets and +1.10% vs tokio-tungstenite. Run with cargo bench --bench websocket_vs_fastwebsockets -- --messages 5000 --warmups 500 --payload-bytes 1024 --require-thresholds.
The localhost results above hold up against a real production LLM endpoint. Specter ships a second bench, benches/codex_real_streaming.rs, that hits POST https://chatgpt.com/backend-api/codex/responses (the Codex backend, SSE over HTTP/2) and measures TTFT and end-to-end wall time for both Specter and reqwest with paired interleaved samples.
Specter vs reqwest on POST https://chatgpt.com/backend-api/codex/responses (n=10, 5 pairs):
| Metric | Specter | reqwest | Specter advantage |
|---|---|---|---|
| Median TTFT | 558.8 ms | 924.4 ms | −365.6 ms (−40%) |
| Median wall time | 670.7 ms | 968.9 ms | −298.2 ms (−31%) |
| Wall time 95% CI | [−419, −52] | (excludes zero) | statistically significant |
| Wilcoxon p-value | 0.0295 | < 0.05 | significant |
Both clients negotiated HTTP/2; all 10 samples passed the per-pair oracle (status_code==200 AND delta_count>=1 AND response.completed). All 5 paired samples showed Specter faster, with the wall-time 95% CI excluding zero — a real, measurable Specter advantage on a live LLM stream over the public internet, not just localhost fixtures.
Run with cargo bench --bench codex_real_streaming (skips with exit 0 when ~/.codex/auth.json is absent).
reqwest doesn't natively support WebSockets, so the receive-side comparison is against tokio-tungstenite 0.24 — the canonical Rust WebSocket client. The companion bench benches/codex_ws_streaming.rs hits the same Codex backend over wss:// and sends a response.create frame, then measures TTFT and wall time over the text-frame stream.
Specter vs tokio-tungstenite 0.24 on wss://chatgpt.com/backend-api/codex/responses (n=50, 25 paired samples):
| Metric | Specter | tokio-tungstenite | Specter advantage |
|---|---|---|---|
| Median TTFT | 781.1 ms | 702.8 ms | +78 ms (tungstenite slightly faster at median) |
| **p95 TTFT** | **1423.9 ms** | **4110.7 ms** | **−2687 ms (−65%)** |
| Median wall time | 827.6 ms | 789.6 ms | +38 ms (within noise) |
| **p95 wall time** | **2835.0 ms** | **4494.5 ms** | **−1659 ms (−37%)** |
The story isn't median — it's the tail. tokio-tungstenite has dramatically worse worst-case behavior on this endpoint: p95 TTFT is 2.9× higher and p95 wall time is 1.6× higher. For LLM-streaming applications where one slow request blocks the whole pipeline, this tail behavior matters more than median.
Optimizations applied to win the tail/local echo gate: pre-allocated 16 KB read buffer on WebSocket::new, reused frame encode buffer, CSPRNG-backed mask key cache (one getrandom syscall per 64 outbound frames instead of per-frame), word-sized payload masking, and #[inline] on the frame decode hot path. Source: src/websocket/frame.rs, src/websocket/connection.rs.
The RFC 6455 API exposes both message-level and frame-level control: WebSocket::split() returns independent WebSocketReader / WebSocketWriter halves, next_frame() exposes raw frame boundaries for callers that need fragmentation visibility, and PreparedMessage with send_prepared / send_prepared_batch supports reusable text/binary payloads with fresh client masks per send.
Run with cargo bench --bench codex_ws_streaming.
Specter是一个功能齐全的Rust HTTP客户端,支持Chrome指纹识别,适合用于自动化测试和爬虫任务,但需要注意其潜在风险和安全限制。
该工具未明确声明开源协议,商业使用前请联系原作者确认授权范围,避免侵权风险。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
总体来看,开源AI工具:Rust HTTP客户端 是一款质量良好的AI工具,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | specter |
| 原始描述 | 开源AI工具:Rust HTTP client with byte-accurate Chrome fingerprints across TLS, HTTP/1.1, HT。⭐8 · Rust |
| Topics | RustHTTP客户端Chrome指纹识别 |
| GitHub | https://github.com/jaredboynton/specter |
| 语言 | Rust |
收录时间:2026-05-25 · 更新时间:2026-05-30 · License:未公布 · AI Skill Hub 不对第三方内容的准确性作法律背书。