All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.0 - 2025-01-11
- Initial release of the Serper SDK
- Core module with type-safe error handling and fundamental types (
ApiKey,BaseUrl,Location,Pagination) - Search module with comprehensive query construction and response parsing
SearchQuerywith fluent builder patternSearchResponsewith full response type support (organic results, answer boxes, knowledge graphs)SearchServicefor high-level search operations
- HTTP module with transport layer abstraction
HttpTransportfor low-level HTTP operationsSerperHttpClientfor API-specific operations- Configurable timeouts, user agents, and headers
- Config module with environment variable support
SdkConfigwith builder pattern- Environment variable integration (
SERPER_API_KEY,SERPER_BASE_URL, etc.) - Comprehensive validation
- Utils module with common utilities
- URL validation and manipulation
- String processing and sanitization
- Collection utilities (HashMap merging, filtering)
- Retry logic with exponential backoff
- Async-first design with concurrent request support
- Type safety with comprehensive error handling using
thiserror - Builder patterns for flexible configuration and query construction
- Environment variable support for deployment flexibility
- Comprehensive test coverage with 54 unit tests
- Rich documentation with API references and examples
- Modular architecture with clear separation of concerns
- Rust Edition 2024 support
- Zero Clippy warnings with strict linting
- HTTP client abstraction built on
reqwest - JSON serialization with
serde - URL handling with proper validation
- Concurrent operations with configurable limits
- Request/response logging (optional)
- Connection pooling and reuse
- Proper error propagation throughout the stack
- Basic search example
- Environment configuration example
- Debug and testing utilities
- Comprehensive search demonstrations
- Complete API reference documentation
- Module-specific documentation with usage examples
- Architecture overview and design principles
- Dependency relationships and module interactions
- Contributing guidelines
- Security best practices
- Automatic documentation generation and deployment to GitHub Pages
- Local documentation generation with
cargo doc