MCPcopy Index your code
hub / github.com/deedy5/primp

github.com/deedy5/primp @v1.3.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.3.1 ↗ · + Follow
8,215 symbols 35,007 edges 450 files 2,248 documented · 27% 7 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

🪞 PRIMP 🦀🐍

HTTP client that can impersonate web browsers

Quick Start

🦀 Rust → /crates/primp

[dependencies]
primp = "1"
use primp::{Client, Impersonate};

#[tokio::main]
async fn main() -> Result<(), primp::Error> {
    let client = Client::builder()
        .impersonate(Impersonate::ChromeV146)
        .build()?;
    let resp = client.get("https://tls.peet.ws/api/all").send().await?;
    println!("Body: {}", resp.text().await?);
    Ok(())
}

🐍 Python → /crates/primp-python

pip install primp
import primp

client = primp.Client(impersonate="chrome_146")
resp = client.get("https://tls.peet.ws/api/all")
print(resp.text)

Browser profiles

Browser Profiles
Chrome chrome_144, chrome_145, chrome_146, chrome_147, chrome_148, chrome
Safari safari_18.5, safari_26, safari_26.3, safari
Edge edge_144, edge_145, edge_146, edge_147, edge_148, edge
Firefox firefox_140, firefox_146, firefox_147, firefox_148, firefox
Opera opera_126, opera_127, opera_128, opera_129, opera_130, opera_131, opera
Random random

OS: android, ios, linux, macos, windows, random


Disclaimer

This tool is for educational purposes only. Use it at your own risk.

Extension points exported contracts — how you extend this code

Service (Interface)
An asynchronous function from a `Request` to a `Response`. The `Service` trait is a simplified interface making it easy [36 …
crates/primp-hyper/src/service/service.rs
KeyLog (Interface)
This trait represents the ability to do something useful with key material, such as logging it to a file for debugging. [6 …
crates/primp-rustls/rustls/src/key_log.rs
Resolve (Interface)
Trait for customizing DNS resolution in reqwest. [8 implementers]
crates/primp-reqwest/src/dns/resolve.rs
Connection (Interface)
Describes a type returned by a connector. [7 implementers]
crates/primp-hyper-util/src/client/legacy/connect/mod.rs
Next (Interface)
(no doc) [6 implementers]
crates/primp-h2/src/proto/streams/store.rs
ResolveServerName (Interface)
A trait implemented by types that can resolve a [`ServerName`] for a request. [3 implementers]
crates/primp-hyper-rustls/src/connector.rs
HeadersTraits (Interface)
Trait for converting between IndexMap and HeaderMap representations. [2 implementers]
crates/primp-python/src/traits.rs
IoSession (Interface)
(no doc) [2 implementers]
crates/primp-tokio-rustls/src/common/handshake.rs

Core symbols most depended-on inside this repo

default_provider
called by 291
crates/primp-rustls/rustls/src/crypto/ring/mod.rs
clone
called by 282
crates/primp-rustls/rustls/src/hash_hs.rs
builder
called by 254
crates/primp-reqwest/src/error.rs
iter
called by 250
crates/primp-rustls/rustls/src/msgs/deframer/handshake.rs
builder
called by 244
crates/primp-hyper-util/src/client/pool/cache.rs
write_all
called by 231
crates/primp-rustls/rustls/src/server/server_conn.rs
map
called by 226
crates/primp-rustls/rustls/src/msgs/persist.rs
lock
called by 209
crates/primp-rustls/rustls/src/lock.rs

Shape

Method 4,563
Function 2,269
Class 1,049
Enum 211
Interface 120
Route 3

Languages

Rust95%
Python5%

Modules by API surface

crates/primp-rustls/rustls/tests/api.rs326 symbols
crates/primp-hyper/tests/server.rs148 symbols
crates/primp-reqwest/src/async_impl/client.rs140 symbols
crates/primp-rustls/rustls-test/src/lib.rs116 symbols
crates/primp-reqwest/src/blocking/client.rs106 symbols
crates/primp-rustls/rustls/src/msgs/handshake.rs102 symbols
crates/primp-hyper-util/src/client/legacy/client.rs90 symbols
crates/primp-python/tests/test_client.py85 symbols
crates/primp/src/lib.rs80 symbols
crates/primp-hyper/src/proto/h1/role.rs78 symbols
crates/primp-h2/src/proto/streams/streams.rs76 symbols
crates/primp-rustls/rustls/src/common_state.rs74 symbols

For agents

$ claude mcp add primp \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact