Observed since 20 Oct, 18:14 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
148tls-fetch
curl_cffi-like HTTP client with a real Chrome 148 TLS + HTTP/2 fingerprint (Rust/BoringSSL via napi-rs). Windows x64.
curl_cffi-like HTTP client emitting a real Chrome 148 TLS ClientHello + HTTP/2 fingerprint.
Engine: Rust (wreq / BoringSSL) compiled to a native Node addon via napi-rs.
Platform: Windows x64 only. (os: win32, cpu: x64)
npm install 148tls-fetch
const { CurlSession, Curl, CurlOpt, CurlInfo } = require("148tls-fetch");
const s = new CurlSession({ impersonate: "chrome148", proxy: "http://user:pass@host:port" });
const r = await s.get("https://x.com/", {
headers: { "User-Agent": "Mozilla/5.0 ... Chrome/148.0.0.0 Safari/537.36" },
timeout: 20000,
});
console.log(r.status, r.text.length);
// r = { status, url, text, data, dataRaw(Buffer), headers, headersList }
// cookies persist in s.jar across requests automatically
s.jar.setCookieSync("auth_token=...; Domain=.x.com; Path=/; Secure", "https://x.com/");
const post = await s.post("https://api.example.com/x", JSON.stringify({ a: 1 }), {
headers: { "Content-Type": "application/json" },
});
Curl style)const c = new Curl();
c.impersonate("chrome148", false);
c.setOption(CurlOpt.Url, "https://example.com/");
c.setOption(CurlOpt.HttpGet, true);
c.setHeadersRaw(["User-Agent: ...", "Accept: application/json"]);
await c.perform();
c.status(); // HTTP status
c.getRespBody(); // Buffer
c.getInfoString(CurlInfo.EffectiveUrl); // final URL after redirects
c.close();
Matches real Chrome 148 on JA4, HTTP/2 Akamai, cipher list, supported groups, and extension set. (JA3 hash intentionally varies — Chrome 110+ randomizes TLS extension order each handshake; JA4 is the stable identifier.)
MIT
npm · 1 observations shown. Missing days are unknown.
| Date / source period | Value | Observed at |
|---|---|---|
| 2026-10-21 | 6 | 2026-10-21T18:38:09.6705795Z |
Declarations describe requirements; they are not a resolved dependency graph.
Source distribution
{
"integrity": "sha512-cOA3sfEfDW0kh1cGLl4d6Wz4EF5dnIgarZFOOIQuPgxNGncwLhq7FUJroirxDVegOilbJlzzsZJijswbKsSdtA==",
"shasum": "c967e35b29fe06fd9d7952c3661ef54fb0051f66",
"tarball": "https://registry.npmjs.org/148tls-fetch/-/148tls-fetch-0.1.1.tgz",
"fileCount": 8,
"unpackedSize": 7346436,
"signatures": [
{
"keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U",
"sig": "MEUCIGtPhHQ2j7yJQyQQVTI81HpeRQuOqM6c4xZUSGegubA9AiEA8dLBIZVnH6F4HHUtrWub8Tz2PeB06vCwWLGSAuyWqOU="
}
]
}Observed since 20 Oct, 18:14 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:4485e85ef392269a5095ab8ba7cbdf57dcc9796e99a8ce08a34edd6924beaed4