What problem does it solve? Scientific APIs like NCBI, PubChem, and ChEMBL enforce strict rate limits and return transient errors (429, 5xx) that break naive scripts. This shared package gives every Science Skill a single, dependency-free HTTP client that handles throttling, retries, and backoff consistently. ## Core Features & Use Cases - Cross-Process Rate Limiting: A file-lock based limiter enforces per-host QPS limits even when multiple scripts run in parallel. - Automatic Retries with Backoff: Retries transient HTTP 429/5xx and network errors using exponential backoff with jitter and Retry-After header support. - Proactive Backpressure: Parses the X-Throttling-Control header from PubChem/NCBI to slow down before hitting hard limits. - Streaming Support: Streams large responses line-by-line or in byte chunks for big downloads like UniProt result sets or PDFs. - Use Case: A bioinformatics skill querying NCBI E-utilities imports this client to fetch JSON at 3 QPS, automatically retrying on 503 responses without writing any retry logic. ## Quick Start Import http_client from the science_skills_common package and use it to fetch JSON from the NCBI E-utilities API with a 3 queries-per-second limit.