Skip to content

πŸš€ Major Release: Leptos 0.8 Compatibility

Latest

Choose a tag to compare

@petehanssens petehanssens released this 01 Sep 09:53
· 20 commits to main since this release

This release brings full compatibility with Leptos 0.8 and significant improvements to the library's API, examples, and testing infrastructure.

✨ New Features

  • Full Leptos 0.8 Support: Updated to work seamlessly with the latest Leptos framework
  • Enhanced Type Safety: Improved type checking and compile-time error detection
  • Modern Rust Standards: Updated to use latest Rust idioms and patterns

πŸ”§ API Changes

  • Query Hook Updates: use_query now expects QueryKey and a single async closure
  • Signal Access: Result fields like is_loading, is_success, is_error, status are now Signals accessed via .get()
  • Callback Invocation: refetch and mutate are now Callbacks invoked with .run()
  • QueryKey Constructor: Updated to use QueryKey::new(&[...]) pattern

πŸ§ͺ Testing & Examples

  • Comprehensive Test Suite: All 28 tests now passing (12 core + 7 integration + 9 basic)
  • Updated Examples: All examples updated to Leptos 0.8 and current API
  • Working Benchmarks: Added performance benchmarks with criterion
  • Integration Tests: Full integration test coverage for real-world usage patterns

πŸ“š Documentation & Examples

  • Updated Examples: basic_usage, advanced_usage, and basic examples all working
  • API Documentation: Comprehensive coverage of all public APIs
  • Migration Guide: Clear upgrade path from previous versions

πŸš€ Performance Improvements

  • Benchmark Suite: Added performance measurement for key operations
  • Query Key Operations: ~150-300ns for key creation and pattern matching
  • Client Operations: ~20-900ns for client creation and cache operations
  • Serialization: ~70-170ns for JSON/bincode operations

πŸ”§ Technical Improvements

  • Dependency Updates: Added criterion and rand for benchmarking
  • Code Quality: Resolved all compilation errors and warnings
  • Modern Standards: Updated deprecated function usage

πŸ“¦ Breaking Changes

  • Leptos 0.8 Required: This version requires Leptos 0.8 or higher
  • API Updates: Several method signatures have changed for better type safety
  • Signal Access: Result fields now require .get() for access

🎯 Migration Guide

To upgrade from 0.2.x to 0.3.0:

  1. Update Leptos: Ensure you're using Leptos 0.8
  2. Update Query Calls: Change use_query to use QueryKey::new(&[...])
  3. Update Field Access: Add .get() to access result fields
  4. Update Callbacks: Change .call() to .run() for refetch and mutate

πŸ› Bug Fixes

  • Fixed view! macro type compatibility issues
  • Resolved lifetime issues in examples
  • Fixed module path issues for client functions
  • Corrected API compatibility across all components

Full Changelog: v0.1.0...v0.3.0