Catalog npm
Back to packageRELEASE DETAILS

0.1.1

npm

148tls-fetch

curl_cffi-like HTTP client with a real Chrome 148 TLS + HTTP/2 fingerprint (Rust/BoringSSL via napi-rs). Windows x64.

boringsslchromecurl-cffifingerprinthttp2impersonateja3ja4tls
Published23 May 2026
Direct dependencies0
Transitive dependenciesNot calculated

README

Current package documentation

148tls-fetch

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)

Install

npm install 148tls-fetch

Usage

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" },
});

Low-level handle (curl-cffi 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();

Fingerprint

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.)

License

MIT

Downloads & popularity

6downloads
7-day window · source-reported counts21 Oct 2026
630
2026-10-21: 6 · observed 2026-10-21T18:38:09.6705795Z
21 Oct21 Oct

npm · 1 observations shown. Missing days are unknown.

View observed values
Date / source periodValueObserved at
2026-10-2162026-10-21T18:38:09.6705795Z

Declared dependencies 0

Native requirements
0 direct targetsNot calculated transitive count
No declared dependencies in this collected response

Declarations describe requirements; they are not a resolved dependency graph.

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "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="
    }
  ]
}

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 18:14 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:4485e85ef392269a5095ab8ba7cbdf57dcc9796e99a8ce08a34edd6924beaed4

Other collected versions

0.1.023 MayView all collected versions →