Package Exports
- recker
- recker/ai
- recker/client
- recker/dns
- recker/package.json
- recker/plugins/auth
- recker/plugins/cache
- recker/plugins/circuit-breaker
- recker/plugins/compression
- recker/plugins/cookie-jar
- recker/plugins/dedup
- recker/plugins/graphql
- recker/plugins/grpc-web
- recker/plugins/har-player
- recker/plugins/har-recorder
- recker/plugins/hls
- recker/plugins/http2-push
- recker/plugins/http3
- recker/plugins/interface-rotator
- recker/plugins/jsonrpc
- recker/plugins/logger
- recker/plugins/odata
- recker/plugins/pagination
- recker/plugins/proxy-rotator
- recker/plugins/retry
- recker/plugins/scrape
- recker/plugins/server-timing
- recker/plugins/soap
- recker/plugins/user-agent
- recker/plugins/xml
- recker/plugins/xsrf
- recker/presets
- recker/scrape
- recker/testing
- recker/udp
- recker/utils/agent-manager
- recker/utils/body
- recker/utils/cert
- recker/utils/charset
- recker/utils/chart
- recker/utils/client-pool
- recker/utils/colors
- recker/utils/concurrency
- recker/utils/dns
- recker/utils/dns-toolkit
- recker/utils/doh
- recker/utils/download
- recker/utils/env-proxy
- recker/utils/header-parser
- recker/utils/html-cleaner
- recker/utils/link-header
- recker/utils/optional-require
- recker/utils/progress
- recker/utils/rdap
- recker/utils/request-pool
- recker/utils/security-grader
- recker/utils/sparkline
- recker/utils/sse
- recker/utils/streaming
- recker/utils/system-metrics
- recker/utils/tls-inspector
- recker/utils/try-fn
- recker/utils/upload
- recker/utils/user-agent
- recker/utils/whois
- recker/webrtc
Readme
⚡ Recker
The Network SDK for the AI Era
Zero-config HTTP. Multi-protocol support. AI-native streaming. Observable to the millisecond.
Install
npm install reckerQuick Start
import { get, post, whois, dns } from 'recker';
import { rdap, supportsRDAP } from 'recker/utils/rdap';
// HTTP - zero config
const users = await get('https://api.example.com/users').json();
await post('https://api.example.com/users', { json: { name: 'John' } });
// WHOIS
const info = await whois('github.com');
// RDAP (modern WHOIS)
if (supportsRDAP('com')) {
const data = await rdap(client, 'google.com');
console.log(data.status, data.events);
}
// DNS
const ips = await dns('google.com');Unified Namespace
import { recker } from 'recker';
// Everything in one place
await recker.get('https://api.example.com/users').json();
await recker.whois('github.com');
await recker.dns('google.com');
await recker.ai.chat('Hello!');
const socket = recker.ws('wss://api.example.com/ws');With Configuration
import { createClient } from 'recker';
const api = createClient({
baseUrl: 'https://api.example.com',
headers: { 'Authorization': 'Bearer token' },
timeout: 10000,
retry: { maxAttempts: 3 }
});
const user = await api.get('/users/:id', { params: { id: '123' } }).json();Features
| Feature | Description |
|---|---|
| Zero Config | Direct functions work out of the box. No setup required. |
| Multi-Protocol | HTTP, WebSocket, DNS, WHOIS, RDAP, FTP, SFTP, Telnet in one SDK. |
| AI-Native | SSE streaming, token counting, provider abstraction. |
| Type-Safe | Full TypeScript with Zod schema validation. |
| Observable | DNS/TCP/TLS/TTFB timing breakdown per request. |
| Resilient | Retry, circuit breaker, rate limiting, deduplication. |
| GeoIP (Offline) | MaxMind GeoLite2 database with bogon detection. |
| RDAP Support | Modern WHOIS with IANA Bootstrap and TLD detection. |
Highlights
AI Streaming
for await (const event of recker.ai.stream({
model: 'gpt-4',
messages: [{ role: 'user', content: 'Hello!' }]
})) {
process.stdout.write(event.choices[0]?.delta?.content || '');
}Request Timing
const response = await get('https://api.example.com/data');
console.log(response.timings);
// { dns: 12, tcp: 8, tls: 45, firstByte: 23, total: 156 }Scraping
const doc = await client.scrape('https://example.com');
const titles = doc.selectAll('h1').map(el => el.text());Circuit Breaker
import { createClient, circuitBreaker } from 'recker';
const client = createClient({
baseUrl: 'https://api.example.com',
plugins: [
circuitBreaker({ threshold: 5, resetTimeout: 30000 })
]
});Documentation
- Quick Start - Get running in 2 minutes
- API Reference - Complete API documentation
- Configuration - Client options
- Plugins - Extend functionality
- AI Integration - OpenAI, Anthropic, and more
- Protocols - WebSocket, DNS, WHOIS
License
MIT © Forattini