v1.0.0-rc2: Introduction of Leaky Bucket and Concurrency Limiters with Enhanced Test Coverage
Pre-release
Pre-release
Release Notes for v1.0.0-rc2
What's New
-
Leaky Bucket Rate Limiter Implemented
- New Policy Added: Introduced the Leaky Bucket rate limiting policy (
LeakyBucketLimiter
), providing a smooth and controlled request flow. - Fully Functional Implementation: The leaky bucket algorithm is now fully integrated and functional within the library.
- Concurrency Limit Integration: Added concurrency limit capabilities to the leaky bucket limiter, allowing control over simultaneous requests.
- New Policy Added: Introduced the Leaky Bucket rate limiting policy (
-
Concurrency Rate Limiter Introduced
- New Policy Added: Implemented the Concurrency rate limiting policy (
ConcurrencyLimiter
), enabling limitation on the number of concurrent requests. - Integration with Existing Limiters: Works seamlessly with other rate limiting policies for comprehensive control.
- New Policy Added: Implemented the Concurrency rate limiting policy (
-
Enhanced Test Coverage and Stability
- Extensive Test Cases Added:
- Memory Store (
memory.go
): Added additional test cases to improve coverage and ensure reliability. - Redis Store (
redis.go
): Improved test coverage with new test cases and fixed previous test errors. - Rate Limiter Core (
ratelimiter.go
): Included tests covering various policies and their integrations. - Sliding Window Limiter: Added more test cases to achieve better coverage and identify edge cases.
- Memory Store (
- Fixed Test Errors:
- Memory Goroutine Issues: Resolved test errors related to goroutines in the memory store.
- Integration Tests Updated:
- Ensured all limiters work together smoothly through updated integration tests.
- Extensive Test Cases Added:
-
Documentation and Changelog Updates
- Changelog Added:
- Created a
CHANGELOG.md
file to document all changes, features, and fixes in this release and previous ones.
- Created a
- README Updated:
- Revised
README.md
to reflect new features, including usage instructions for the Leaky Bucket and Concurrency limiters. - Improved documentation for better clarity and ease of understanding.
- Revised
- Changelog Added:
Bug Fixes
-
Test Fixes and Stability Improvements
- Addressed and fixed various test errors to ensure all tests pass reliably.
- Improved the stability of tests across different environments.
-
Integration Fixes
- Fixed issues in integration tests to ensure seamless operation of all rate limiting policies when used together.
Notes
-
Backward Compatibility
- Maintained compatibility with existing implementations; no breaking changes introduced.
- Existing users can upgrade without modifying their current integrations.
-
Testing and Validation
- Comprehensive tests included for all new features and changes.
- Users are encouraged to run tests in their environments to validate functionality.
Next Steps:
-
Feedback Requested
- Please test this release candidate thoroughly.
- Report any issues or provide feedback on GitHub to help us prepare for the final
v1.0.0
release.
-
Future Plans
- Focus on performance optimizations and additional features in upcoming releases.
- Continued improvement of test coverage and documentation.
Summary:
This release candidate marks a significant milestone with the introduction of the Leaky Bucket and Concurrency rate limiters, offering more flexibility and control over request management. Enhanced test coverage and documentation ensure that the library is reliable, and user-friendly.