# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.0] - 2026-07-03

### Added

- Initial release of the official Rust client for the Ipregistry API.
- Single IP lookup (`Client::lookup`), origin lookup (`Client::lookup_origin`),
  and batch lookup (`Client::lookup_batch`) with per-entry results, transparent
  chunking beyond the API's 1024-address limit, and bounded concurrency.
- User-Agent parsing (`Client::parse_user_agents`) and the `is_bot` helper.
- Per-request options: reverse-DNS hostname resolution, field selection, and
  arbitrary query parameters.
- Pluggable response caching via the `Cache` trait, with a built-in
  thread-safe `InMemoryCache` (LRU + TTL).
- Automatic retries with exponential backoff for transient network errors and
  5xx responses; opt-in retries on 429 honoring `Retry-After`.
- Typed errors: `Error` (API / transport / decode), `ApiError`, and
  `ErrorCode`.
- TLS via rustls by default, with an optional `native-tls` feature.
