Skip to content

Releases: skyaktech/tlq-client-rust

release: v0.4.0

Choose a tag to compare

@nebjak nebjak released this 21 Mar 18:33
59beb9d

What's New

This release aligns the Rust client with TLQ server v0.4.0, adding queue statistics support, simplified message states, and an improved builder API.

Added

  • QueueStats type and stats() method for retrieving queue statistics via GET /stats (ready, processing, dead counts)
  • ConfigBuilder::build_config() method for direct Config access when needed

Changed

  • ConfigBuilder::build() now returns TlqClient directly — no more TlqClient::with_config(builder.build()) boilerplate
  • lock_until field type changed from Option<String> to Option<u64> (Unix timestamp in milliseconds), matching server v0.4.0 format
  • Updated dependencies: tokio 1.50, uuid 1.22

Removed

  • MessageState::Failed variant — server v0.4.0 handles expired messages automatically via background reaper; dead message counts are available through stats()

Migration Guide

Builder pattern (simplification, not breakage for most users):

// Before (0.2.0)
let config = TlqClient::builder().host("localhost").port(1337).build();
let client = TlqClient::with_config(config);

// After (0.4.0)
let client = TlqClient::builder().host("localhost").port(1337).build();

MessageState::Failed — remove any pattern matches or filters on Failed. The server's reaper now handles stuck messages automatically. Use client.stats().await? to monitor dead message counts.

lock_until — if you read this field, update your code from Option<String> to Option<u64> (Unix timestamp in milliseconds).

Full Changelog: 0.2.0...0.4.0

0.2.0

Choose a tag to compare

@nebjak nebjak released this 30 Aug 18:01

Added

  • Comprehensive API documentation following Rust best practices
  • Complete documentation for all public APIs with examples
  • Crate-level documentation with quick start guide and feature overview
  • Method-level documentation with parameters, returns, examples, and error conditions
  • Error type documentation with detailed descriptions and retryable classification
  • Configuration builder pattern documentation with usage examples
  • Internal retry mechanism documentation explaining exponential backoff

Documentation

  • Added 32+ working documentation examples that are tested with cargo test --doc
  • All examples follow no_run pattern for network-dependent operations
  • Cross-references between related types using proper Rust doc links
  • Comprehensive error documentation with usage patterns
  • Professional docs.rs compatible documentation structure

Full Changelog: 0.1.1...0.2.0

0.1.1

Choose a tag to compare

@nebjak nebjak released this 30 Aug 17:33

Updated dependencies.

Full Changelog: 0.1.0...0.1.1

0.1.0

Choose a tag to compare

@nebjak nebjak released this 30 Aug 17:22

Initial Release

Added

  • Async/await support with Tokio
  • Builder pattern for client configuration
  • Comprehensive error handling with custom error types
  • Automatic retry with exponential backoff
  • Full API coverage:
    • Health check
    • Add message
    • Get messages (single and batch)
    • Delete messages (single and batch)
    • Retry messages (single and batch)
    • Purge queue
  • Message size validation (64KB limit)
  • UUID v7 support for message IDs
  • Comprehensive test suite (62 tests)
  • Example applications (basic usage, worker, batch processing)
  • CI/CD with GitHub Actions

Technical Details

  • Minimal dependencies (tokio, serde, serde_json, uuid, thiserror)
  • Zero-copy where possible for performance
  • Production-ready with comprehensive error handling
  • Compatible with TLQ server API

Full Changelog: https://github.com/skyaktech/tlq-client-rust/commits/0.1.0