Repository navigation
Releases: thomhurst/Respire
Releases · thomhurst/Respire
Release list
0.10.0
What's Changed
- Align release naming and compatibility docs with 2.0 by @thomhurst in #1817
- docs: refresh shipped features and the 2.0 roadmap by @thomhurst in #1818
- Enable NuGet package validation for all shipping libraries by @thomhurst in #1821
- feat: preserve application job group identity through delivery by @thomhurst in #1827
- test: validate Orleans Cluster recovery and abrupt silo death by @thomhurst in #1823
- Add queue-wide pause and rate-limited job admission by @thomhurst in #1828
- feat: encrypt cache, map, job, and stream payloads with Data Protection by @thomhurst in #1833
- feat: distribute round-robin job group scheduling by @thomhurst in #1829
- feat: opt in to cross-slot Cluster multi-key splitting by @thomhurst in #1832
- Test Garnet, Dragonfly and KeyDB compatibility by @thomhurst in #1834
- feat: add bounded per-job logs and dashboard inspection by @thomhurst in #1831
- Add Redis idempotency claims and binary result replay by @thomhurst in #1837
- feat: add bounded job metrics history and dashboard charts by @thomhurst in #1842
- Support Orleans membership transactions during Cluster ASK migration by @thomhurst in #1840
- Bound Orleans recovery cleanup after failed Sentinel elections by @thomhurst in #1841
- feat: add distributed job group concurrency and rate controls by @thomhurst in #1843
- Add argument-aware expectations to Respire.Testing by @thomhurst in #1851
- Add ASP.NET Core idempotency-key response replay by @thomhurst in #1848
- Add MessagePack, protobuf-net and MemoryPack serializer packages by @thomhurst in #1849
- Test CLIENT ID disposal after delayed scheduling by @thomhurst in #1854
- Add reliable message queues with visibility leases and dead letters by @thomhurst in #1850
- Support transactional job enqueue with caller writes by @thomhurst in #1847
- Stabilize job recovery ordering test with handler gates by @thomhurst in #1857
- feat: inspect and control application job groups in dashboard by @thomhurst in #1855
- Fix dashboard retries of failed flow jobs by @thomhurst in #1859
- Support OPTOUT and NOLOOP client-side tracking by @thomhurst in #1839
- Add hosted leader election with fenced leases and revocation callbacks by @thomhurst in #1838
- Add configurable dedicated pool limits and idle retirement by @thomhurst in #1852
- feat(streaming): add job batches with atomic completion callbacks by @thomhurst in #1846
- Remove redundant DocTests package references by @thomhurst in #1861
- docs: show the easy path first in README and home page by @thomhurst in #1863
- Show job batch progress in the dashboard by @thomhurst in #1862
Full Changelog: v0.9.0...v0.10.0
NuGet packages
dotnet add package Aspire.Respire --version 0.10.0
dotnet add package Aspire.Respire.DistributedCaching --version 0.10.0
dotnet add package Aspire.Respire.HybridCaching --version 0.10.0
dotnet add package Aspire.Respire.OutputCaching --version 0.10.0
dotnet add package Respire --version 0.10.0
dotnet add package Respire.AI --version 0.10.0
dotnet add package Respire.Aws --version 0.10.0
dotnet add package Respire.Azure --version 0.10.0
dotnet add package Respire.Caching --version 0.10.0
dotnet add package Respire.Caching.Hybrid --version 0.10.0
dotnet add package Respire.Compression.Lz4 --version 0.10.0
dotnet add package Respire.Compression.Zstd --version 0.10.0
dotnet add package Respire.Coordination --version 0.10.0
dotnet add package Respire.DataProtection --version 0.10.0
dotnet add package Respire.DependencyInjection --version 0.10.0
dotnet add package Respire.FusionCache --version 0.10.0
dotnet add package Respire.HealthChecks --version 0.10.0
dotnet add package Respire.Idempotency --version 0.10.0
dotnet add package Respire.Json --version 0.10.0
dotnet add package Respire.OutputCaching --version 0.10.0
dotnet add package Respire.Probabilistic --version 0.10.0
dotnet add package Respire.Resilience --version 0.10.0
dotnet add package Respire.Search --version 0.10.0
dotnet add package Respire.Serialization.MemoryPack --version 0.10.0
dotnet add package Respire.Serialization.MessagePack --version 0.10.0
dotnet add package Respire.Serialization.Protobuf --version 0.10.0
dotnet add package Respire.SignalR --version 0.10.0
dotnet add package Respire.StackExchangeCompat --version 0.10.0
dotnet add package Respire.Streaming --version 0.10.0
dotnet add package Respire.Streaming.Dashboard --version 0.10.0
dotnet add package Respire.Testing --version 0.10.0
dotnet add package Respire.Testing.Containers --version 0.10.0
dotnet add package Respire.TimeSeries --version 0.10.0
dotnet add package Respire.VectorData --version 0.10.00.9.0
What's Changed
- chore(deps): update dependency system.io.hashing to 10.0.13 by @thomhurst in #1607
- chore(deps): update dependency system.threading.ratelimiting to 10.0.13 by @thomhurst in #1608
- docs: update StackExchange.Redis comparison for 3.4.5 by @thomhurst in #1606
- chore(deps): update dependency system.io.pipelines to 10.0.13 by @thomhurst in #1610
- chore(deps): update dependency system.diagnostics.diagnosticsource to 10.0.13 by @thomhurst in #1609
- chore(deps): update microsoft.extensions to 10.0.13 by @thomhurst in #1612
- docs: audit documentation for accuracy and readability by @thomhurst in #1613
- chore(deps): update dependency dotnet-sdk to v10.0.402 by @thomhurst in #1614
- fix: redact credentials in options diagnostic strings by @thomhurst in #1622
- Enforce public API baselines for every package by @thomhurst in #1621
- chore(deps): update dependency polyfill to 11.4.5 by @thomhurst in #1565
- Mark settling APIs experimental and ship analyzer release tracking by @thomhurst in #1626
- Unify cache-aside expiry inputs and name relative lock lease durations by @thomhurst in #1630
- Pin exact Respire versions for packages using core internals by @thomhurst in #1620
- Make connection startup failures actionable and identify cluster seeds by @thomhurst in #1638
- docs: add a five-minute ASP.NET Core getting-started guide by @thomhurst in #1640
- Prepare Linux comparisons against StackExchange.Redis 3.4 and 4.0 by @thomhurst in #1627
- chore(deps): update anthropics/claude-code-action digest to 34968b5 by @thomhurst in #1654
- chore(deps): update microsoft.aspnetcore by @thomhurst in #1611
- Require explicit public interface implementations by @thomhurst in #1623
- Bring DI options to parity and add validated configuration binding by @thomhurst in #1633
- chore(deps): update dependency tunit to 1.75.0 by @thomhurst in #1615
- Make command results GC-owned and unify batch disposal by @thomhurst in #1634
- docs: compare StackExchange.Redis 3.x and 4.0 preview by @thomhurst in #1645
- Give each NuGet package its own README and icon by @thomhurst in #1644
- Use source-generated logging with stable event IDs by @thomhurst in #1646
- Fail pending SignalR client results when the owning server disappears by @thomhurst in #1647
- Add typed job queues with deduplicated enqueue and stream recovery by @thomhurst in #1651
- Simplify pub/sub overloads and add cancellable single-item commands by @thomhurst in #1631
- Add span formatting and parsing for Respire keys and values by @thomhurst in #1639
- Update Microsoft.Extensions to 10.11.0 by @thomhurst in #1660
- Add near-cache maps with read-through and batched writers by @thomhurst in #1652
- Add generated typed queries for Search hash and JSON documents by @thomhurst in #1653
- Add Redis-backed GCRA rate limiting by @thomhurst in #1659
- Add Polly resilience adapter with one retry owner by @thomhurst in #1661
- Add command trace filters independent of metrics by @thomhurst in #1665
- Update dependency Microsoft.Extensions.Resilience to 10.11.0 by @thomhurst in #1669
- Suppress CS4014 for queued batch and transaction results by @thomhurst in #1670
- Add fake-server TIME and key enumeration with Lua testing guidance by @thomhurst in #1668
- Add tested Redis recipes for common application patterns by @thomhurst in #1666
- Fix raw byte-memory serialization and typed reads (breaking change) by @thomhurst in #1667
- Unify nullable blocking waits while preserving immediate operations by @thomhurst in #1671
- Expose common endpoint context on Respire exceptions by @thomhurst in #1675
- docs: guide migrations from RedLock.net and DistributedLock.Redis by @thomhurst in #1678
- Add StackExchange.Redis migration analyzer and code fix by @thomhurst in #1677
- Add fenced job progress, durable completion events, and enqueue tracing by @thomhurst in #1680
- Add atomic composite Redis rate limits by @thomhurst in #1681
- Distinguish local cross-slot validation from Redis errors by @thomhurst in #1676
- Add durable job scheduling, priority, TTL and retry backoff by @thomhurst in #1679
- Support runtime updates to Redis rate-limit settings by @thomhurst in #1683
- Add admission and completion hooks for explicit pipelines and transactions by @thomhurst in #1686
- Preserve exception endpoints and candidate causes across connection routing by @thomhurst in #1689
- Add hooks around physical connection establishment by @thomhurst in #1687
- Add 2.0 release candidates with an explicit stable cut by @thomhurst in #1690
- Add optional rate-limiter deny lists and admission metrics by @thomhurst in #1682
- Populate endpoints on physical connection and reply failures by @thomhurst in #1688
- Accept pasted Azure and StackExchange.Redis connection strings by @thomhurst in #1691
- Audit healthy retry and transport performance acceptance by @thomhurst in #1697
- Document async-only APIs and warn on blocking Respire calls by @thomhurst in #1692
- Validate retry-owner lifetime races and reclamation evidence by @thomhurst in #1698
- Refresh package and command documentation by @thomhurst in #1696
- Update react to ^19.3.1 by @thomhurst in #1702
- Update anthropics/claude-code-action digest to a26b07d by @thomhurst in #1703
- Update dependency AWSSDK.Core to 4.0.102.11 by @thomhurst in #1705
- Update dependency Microsoft.Diagnostics.Tracing.TraceEvent to v4 by @thomhurst in #1706
- Validate Orleans silo lifecycle and Redis recovery by @thomhurst in #1699
- docs: explain timeouts and thread-pool starvation by @thomhurst in #1700
- Add authorized queue and stream worker dashboard by @thomhurst in #1712
- Add durable parent and child job flows by @thomhurst in #1711
- Add admission and completion hooks for ordinary commands by @thomhurst in #1710
- Add bounded FIFO reconnect backlog infrastructure by @thomhurst in #1718
- Keep Sentinel peers out of data-acquisition timeout diagnostics by @thomhurst in #1714
- Add durable recurring and cron job schedules by @thomhurst in #1709
- Add analyzers for client lifetime, unbounded reads and blocking subscriptions by @thomhurst in #1701
- Extend command hooks to streaming and subscription resources by @thomhurst in #1722
- Extend command hooks to specialized server and cluster scan dispatch by @thomhurst in #1726
- Complete logical XADD hooks across IDMP fallback by @thomhurst in #1730
- Add command hooks for scripts, blocking replies and cursor pages by @thomhurst in #1721
- Queue unsent standalone commands during reconnect by default by @thomhurst in #1727
- Stabilize command-hook hedged-read test coordination by @thomhurst in #1733
- Extend command hooks to function execution and mutations by @thomhurst in https://github.com/thomh...
0.8.2
What's Changed
- perf: serve warm client-cache hits without a dispatch owner and memoize hash string hits by @thomhurst in #1566
Full Changelog: v0.8.0...v0.8.2
NuGet packages
dotnet add package Aspire.Respire --version 0.8.2
dotnet add package Aspire.Respire.DistributedCaching --version 0.8.2
dotnet add package Aspire.Respire.HybridCaching --version 0.8.2
dotnet add package Aspire.Respire.OutputCaching --version 0.8.2
dotnet add package Respire --version 0.8.2
dotnet add package Respire.AI --version 0.8.2
dotnet add package Respire.Aws --version 0.8.2
dotnet add package Respire.Azure --version 0.8.2
dotnet add package Respire.Caching --version 0.8.2
dotnet add package Respire.Caching.Hybrid --version 0.8.2
dotnet add package Respire.Compression.Lz4 --version 0.8.2
dotnet add package Respire.Compression.Zstd --version 0.8.2
dotnet add package Respire.Coordination --version 0.8.2
dotnet add package Respire.DataProtection --version 0.8.2
dotnet add package Respire.DependencyInjection --version 0.8.2
dotnet add package Respire.FusionCache --version 0.8.2
dotnet add package Respire.HealthChecks --version 0.8.2
dotnet add package Respire.Json --version 0.8.2
dotnet add package Respire.OutputCaching --version 0.8.2
dotnet add package Respire.Probabilistic --version 0.8.2
dotnet add package Respire.Search --version 0.8.2
dotnet add package Respire.SignalR --version 0.8.2
dotnet add package Respire.StackExchangeCompat --version 0.8.2
dotnet add package Respire.Streaming --version 0.8.2
dotnet add package Respire.Testing --version 0.8.2
dotnet add package Respire.Testing.Containers --version 0.8.2
dotnet add package Respire.TimeSeries --version 0.8.2
dotnet add package Respire.VectorData --version 0.8.20.8.0
What's Changed
- docs: refresh roadmap and StackExchange.Redis 3.3 comparison by @thomhurst in #903
- feat: complete JSON merge, length, and power commands by @thomhurst in #905
- docs: assess subkey notification cache guarantees by @thomhurst in #904
- feat: persist ASP.NET Core DataProtection keys with Respire by @thomhurst in #906
- feat: add sorted-set rank results with scores by @thomhurst in #925
- feat: support Unix domain socket endpoints by @thomhurst in #914
- feat: add COPY destination database to typed key commands by @thomhurst in #919
- docs: clarify typed JSON projection reply shapes by @thomhurst in #923
- feat: add typed server flush modes and deferred commands by @thomhurst in #918
- feat: add ASP.NET Core health checks for existing Respire clients by @thomhurst in #915
- feat: add Redis 8.10 TimeSeries ranges, labels, and blocking reads by @thomhurst in #935
- ci: consolidate PR workflows to cut runner usage by @thomhurst in #942
- feat: add interoperable ASP.NET Core output caching by @thomhurst in #913
- feat: retry watched transactions after WATCH conflicts by @thomhurst in #920
- feat: add typed Sentinel administration by @thomhurst in #922
- feat: make direct-array JSON projection decoding explicit by @thomhurst in #941
- feat: resolve DataProtection clients from dependency injection by @thomhurst in #938
- feat: add typed multi-element list moves by @thomhurst in #946
- refactor: avoid splitting Sentinel version lines by @thomhurst in #953
- feat: add conditional ZADD options across command queues by @thomhurst in #916
- feat: add cumulative stream read limits by @thomhurst in #943
- feat: expose an opt-in health probe contract for custom clients by @thomhurst in #948
- feat: add typed INCREX counters and verify rate-limit compatibility by @thomhurst in #945
- feat: map existing Redis client metrics to standard names by @thomhurst in #939
- feat: add field-only hash scans and queued pages by @thomhurst in #921
- feat: configure stream idempotency with XCFGSET by @thomhurst in #940
- test: parallelize test suites and share Redis containers by @thomhurst in #955
- perf: restore direct string decode for GetStringAsync by @thomhurst in #985
- perf: bypass JSON reader for canonical numeric values by @thomhurst in #988
- perf: use XxHash3 in version 2 value codec frames by @thomhurst in #989
- perf: keep fully buffered bulk replies in the receive drain by @thomhurst in #993
- feat: protect output-cache replacements with generation-aware tags by @thomhurst in #987
- feat: supply primary uncached reads to WATCH callbacks by @thomhurst in #984
- feat: add set difference and union cardinalities by @thomhurst in #936
- perf: remove MGET converter closures and reuse validated slots by @thomhurst in #990
- test: fix flaky unit tests and drop the unit test parallelism cap by @thomhurst in #1006
- feat: add typed Search suggestion dictionaries by @thomhurst in #1003
- feat: add typed client list and kill filters by @thomhurst in #947
- perf: fill large byte GET replies into caller-owned arrays by @thomhurst in #994
- refactor: validate client filter strings when appending by @thomhurst in #1010
- Document MGET contracts and wait for Search indexing readiness by @thomhurst in #1007
- feat: add Search synonyms and tag values by @thomhurst in #1004
- perf: reuse bounded Zstandard compression contexts by @thomhurst in #1002
- perf: remove JSON and Deflate intermediate payload copies by @thomhurst in #992
- refactor: centralize Search suggestion option assembly by @thomhurst in #1011
- Add typed node-local Search configuration commands by @thomhurst in #1005
- test: fix flaky Search integration test racing the FT.CREATE scan by @thomhurst in #1012
- feat: add connection-bound hash import sessions by @thomhurst in #952
- feat: add Search index inventory and aliases by @thomhurst in #1001
- feat!: make Redis command and cache metrics opt-in by @thomhurst in #991
- refactor: centralize pooled JSON serialization and guard write lifetime by @thomhurst in #1014
- feat: add Search dictionaries and spellcheck by @thomhurst in #1015
- feat: add grouped client include and exclude filters by @thomhurst in #1021
- perf: bound canceled and discarded bulk reply storage by @thomhurst in #1019
- feat: add typed Search query profiling by @thomhurst in #1013
- chore(deps): update anthropics/claude-code-action digest to 6c69018 by @thomhurst in #1033
- build: enforce five performance analyzer rules by @thomhurst in #1034
- feat: observe pubsub messages and explicit stream processing by @thomhurst in #1037
- perf: migrate dedicated synchronization gates to System.Threading.Lock by @thomhurst in #1020
- perf: use connection deadline sweep for transaction commits by @thomhurst in #1018
- test: cover coalesced flush wakes and producer pauses by @thomhurst in #1031
- fix: await lifecycle cleanup and enforce CA1849 by @thomhurst in #1039
- fix: bound aggregate storage before trusting reply counts by @thomhurst in #1026
- refactor: consolidate typed friend-test inspection by @thomhurst in #1042
- test: prevent retirement fixtures from starving thread-pool cleanup by @thomhurst in #1041
- chore(deps): update redis:8.10 docker digest to 8aee659 by @thomhurst in #1051
- fix!: use RespireTimeoutException for private connect deadlines by @thomhurst in #1043
- refactor: consolidate restartable parser context by @thomhurst in #1050
- perf: eliminate disabled lifecycle logging allocations by @thomhurst in #1049
- chore(deps): update anthropics/claude-code-action digest to 86d88e6 by @thomhurst in #1057
- perf: remove redundant pooled response dispatch by @thomhurst in #1052
- refactor: share batch and transaction connection policy by @thomhurst in #1059
- test: fix skipped migration listener initialization by @thomhurst in #1060
- build: enforce all source performance analyzers by @thomhurst in #1062
- perf: pool typed serialization scratch and avoid JSON boxing by @thomhurst in #1058
- chore(deps): update redis:8.10 docker digest to c94085d by @thomhurst in #1068
- chore(deps): update actions/setup-python action to v6.3.0 by @thomhurst in #1069
- test: isolate dispatched flush allocation measurements by @thomhurst in #1067
- feat: add stream consumer recovery options by @thomhurst in #1056
- test: enforce friend inspection architecture by @thomhurst in #1053
- test: harden isolated allocation probe startup and cleanup by @thomhurst in #1071
- chore(deps): update dependency python to 3.14 by @thomhurst in #1072
- chore(deps): update actions/setup-python action to v7 by @thomhurst in #1073
- perf...
0.7.19
What's Changed
- chore(deps): update dependency polyfill to 11.4.2 by @thomhurst in #900
- chore(deps): update dependency polyfill to 11.4.3 by @thomhurst in #902
- perf: wake the flush loop without allocating a work item by @thomhurst in #899
- perf: deliver idle replies before starting the next receive by @thomhurst in #901
Full Changelog: v0.7.14...v0.7.19
NuGet packages
dotnet add package Respire --version 0.7.19
dotnet add package Respire.Aws --version 0.7.19
dotnet add package Respire.Azure --version 0.7.19
dotnet add package Respire.Caching --version 0.7.19
dotnet add package Respire.Caching.Hybrid --version 0.7.19
dotnet add package Respire.Compression.Lz4 --version 0.7.19
dotnet add package Respire.Compression.Zstd --version 0.7.19
dotnet add package Respire.Coordination --version 0.7.19
dotnet add package Respire.DependencyInjection --version 0.7.19
dotnet add package Respire.Json --version 0.7.19
dotnet add package Respire.Probabilistic --version 0.7.19
dotnet add package Respire.Search --version 0.7.19
dotnet add package Respire.Testing --version 0.7.19
dotnet add package Respire.Testing.Containers --version 0.7.19
dotnet add package Respire.TimeSeries --version 0.7.190.7.14
What's Changed
- Update anthropics/claude-code-action digest to cab360f by @thomhurst in #850
- docs: give the documentation site a RESP-based visual identity by @thomhurst in #851
- Fix analyzer exit proofs across catches, finally blocks, and local jumps by @thomhurst in #847
- fix: RESP002 analyzer AD0001 crash for reads inside lambdas within try/finally by @thomhurst in #853
- perf: wake the flush loop inline only for thread-pool writers by @thomhurst in #855
- perf: deliver replies on the receive thread for sequential callers by @thomhurst in #854
- fix: rescue reply delivery stalled behind a blocking continuation by @thomhurst in #852
- fix: complete the receive task even when its first suspension delivers inline by @thomhurst in #856
Full Changelog: v0.7.0...v0.7.14
NuGet packages
dotnet add package Respire --version 0.7.14
dotnet add package Respire.Aws --version 0.7.14
dotnet add package Respire.Azure --version 0.7.14
dotnet add package Respire.Caching --version 0.7.14
dotnet add package Respire.Caching.Hybrid --version 0.7.14
dotnet add package Respire.Compression.Lz4 --version 0.7.14
dotnet add package Respire.Compression.Zstd --version 0.7.14
dotnet add package Respire.Coordination --version 0.7.14
dotnet add package Respire.DependencyInjection --version 0.7.14
dotnet add package Respire.Json --version 0.7.14
dotnet add package Respire.Probabilistic --version 0.7.14
dotnet add package Respire.Search --version 0.7.14
dotnet add package Respire.Testing --version 0.7.14
dotnet add package Respire.Testing.Containers --version 0.7.14
dotnet add package Respire.TimeSeries --version 0.7.140.7.0
What's Changed
- chore(deps): update dependency tunit to 1.65.31 by @thomhurst in #303
- chore(deps): update dependency tunit to 1.65.38 by @thomhurst in #304
- chore(deps): update dependency stackexchange.redis to 3.1.31 by @thomhurst in #305
- test(docs): compile public snippets by @thomhurst in #306
- chore(deps): update dependency tunit to 1.65.51 by @thomhurst in #308
- chore(deps): update dependency tunit to 1.65.63 by @thomhurst in #309
- chore(deps): update dependency tunit to 1.65.68 by @thomhurst in #310
- fix(docs): skip nested example fences by @thomhurst in #307
- chore(deps): update dependency reservoir to 1.5.0 by @thomhurst in #311
- chore(deps): update dependency reservoir to 1.6.0 by @thomhurst in #312
- chore(deps): update actions/deploy-pages digest to 368f825 by @thomhurst in #313
- chore(deps): update dependency reservoir to 1.6.3 by @thomhurst in #314
- chore(deps): update dependency tunit to 1.66.0 by @thomhurst in #315
- fix(ci): support external contributors in Claude workflows by @thomhurst in #316
- chore(deps): update dependency tunit to 1.66.8 by @thomhurst in #317
- chore(deps): update dependency reservoir to 1.6.7 by @thomhurst in #318
- chore(deps): update dependency tunit to 1.66.10 by @thomhurst in #319
- chore(deps): update dependency reservoir to 1.6.10 by @thomhurst in #320
- chore(deps): update dependency tunit to 1.66.16 by @thomhurst in #321
- chore(deps): update dependency testcontainers.redis to 4.15.0 by @thomhurst in #322
- chore(deps): update dependency tunit to 1.66.27 by @thomhurst in #323
- chore(deps): update dependency reservoir to 1.7.0 by @thomhurst in #324
- chore(deps): update dependency system.io.pipelines to 10.0.12 by @thomhurst in #326
- chore(deps): update dependency system.diagnostics.diagnosticsource to 10.0.12 by @thomhurst in #325
- chore(deps): update microsoft.extensions to 10.0.12 by @thomhurst in #328
- chore(deps): update dependency system.io.hashing to 10.0.12 by @thomhurst in #327
- chore(deps): update dependency microsoft.extensions.caching.hybrid to 10.10.0 by @thomhurst in #330
- chore(deps): update dependency dotnet-sdk to v10.0.401 by @thomhurst in #329
- chore(deps): update react to ^19.3.0 by @thomhurst in #331
- chore(deps): update dependency reservoir to 1.8.0 by @thomhurst in #332
- chore(deps): update dependency stackexchange.redis to 3.2.0 by @thomhurst in #334
- chore(deps): update dependency tunit to 1.67.0 by @thomhurst in #335
- chore(deps): update dependency polyfill to 11.3.0 by @thomhurst in #333
- chore(deps): update dependency stackexchange.redis to 3.2.1 by @thomhurst in #336
- chore(deps): update dependency reservoir to 1.9.0 by @thomhurst in #337
- chore(deps): update dependency reservoir to 1.9.1 by @thomhurst in #338
- chore(deps): update dependency fluentassertions to 8.11.0 by @thomhurst in #339
- chore(deps): update dependency tunit to 1.68.0 by @thomhurst in #340
- chore(deps): update dependency stackexchange.redis to 3.2.15 by @thomhurst in #342
- chore(deps): update dependency tunit to 1.68.4 by @thomhurst in #341
- chore(deps): update dependency stackexchange.redis to 3.3.0 by @thomhurst in #343
- chore(deps): update dependency opentelemetry.extensions.hosting to 1.19.0 by @thomhurst in #344
- chore(deps): update dependency tunit to 1.68.17 by @thomhurst in #345
- chore(deps): update dependency polyfill to 11.4.0 by @thomhurst in #346
- chore(deps): update dependency opentelemetry.extensions.hosting to 1.19.1 by @thomhurst in #347
- chore(deps): update npm to v12.1.0 by @thomhurst in #349
- chore(deps): update dependency tunit to 1.69.0 by @thomhurst in #350
- chore(deps): update dependency stackexchange.redis to 3.3.1 by @thomhurst in #348
- chore(deps): update dependency tunit to 1.69.16 by @thomhurst in #351
- chore(deps): update dependency tunit to 1.69.21 by @thomhurst in #352
- chore(deps): update dependency tunit to 1.69.24 by @thomhurst in #353
- chore(deps): update dependency polyfill to 11.4.1 by @thomhurst in #354
- chore(deps): update dependency tunit to 1.70.1 by @thomhurst in #355
- chore(deps): update dependency tunit to 1.71.0 by @thomhurst in #356
- chore(deps): update dependency tunit to 1.72.0 by @thomhurst in #357
- fix: put ScanAsync type filter before count hint by @thomhurst in #358
- refactor: use ScoresMany for multi-member score reads by @thomhurst in #359
- refactor: share ExpireWhen across key and hash field expiry by @thomhurst in #361
- refactor: name bitmap population counts explicitly by @thomhurst in #362
- refactor: unify stream range direction parameter by @thomhurst in #363
- refactor: align stream and server read names by @thomhurst in #364
- chore(deps): update dependency tunit to 1.72.4 by @thomhurst in #369
- fix: avoid re-encoding GEOSEARCH result members by @thomhurst in #360
- docs: define membership naming by key field and value by @thomhurst in #368
- docs: guarantee GC-owned deferred script results by @thomhurst in #371
- refactor: use Remove for entries within keys by @thomhurst in #366
- fix: make script spans the implementation core by @thomhurst in #374
- feat: accept binary-safe bulk sorted-set inputs by @thomhurst in #372
- Align immediate and deferred write confirmations by @thomhurst in #377
- refactor: remove obsolete pre-release APIs by @thomhurst in #376
- feat: add single-member sorted-set pop operations by @thomhurst in #367
- feat: use typed BITFIELD encodings and offsets by @thomhurst in #370
- docs: always dispose explicit batches by @thomhurst in #373
- refactor: require complete interface implementations by @thomhurst in #375
- Document and enforce uniform variadic cancellation overloads by @thomhurst in #384
- Reject malformed and partially parsed double replies by @thomhurst in #381
- Isolate pull-request documentation build concurrency by @thomhurst in #388
- Reject unroutable Redis Cluster redirect endpoints by @thomhurst in #386
- Make batch execution report command failures by default by @thomhurst in #385
- Unify lock ownership with RespireLockToken by @thomhurst in #378
- Standardize count-based set pops on PopMany by @thomhurst in #382
- Complete typed batch and transaction facet parity by @thomhurst in #383
- Align design documentation with supported APIs and compile its examples by @thomhurst in #434
- Support explicit Cluster and Sentinel connection-string modes by @thomhurst in #380
- Add typed set membership, move, and intersection count commands by @thomhurst in #435
- Validate connection string protocols a...
0.6.1
What's Changed
- Keep RespireLease state inspectable after disposal by @thomhurst in #219
- Preserve fire-and-forget interpolated arguments by @thomhurst in #223
- Unify Respire exception hierarchy by @thomhurst in #224
- Align connection documentation with current API by @thomhurst in #221
- Remove meaningless RENAME and MSET results by @thomhurst in #227
- Compare stream IDs using Redis numeric ordering by @thomhurst in #225
- Remove pre-1.0 compatibility shims by @thomhurst in #222
- Use typed key filters for SCAN by @thomhurst in #229
- Validate option ranges before connection setup by @thomhurst in #228
- Stabilize timed-out command recovery test by @thomhurst in #231
- Fault pendings when transactions are discarded by @thomhurst in #233
- Correct RespireGet value nullability by @thomhurst in #220
- Reject null string values at API entry by @thomhurst in #234
- Use one boolean wire encoding by @thomhurst in #230
- Document the WATCH retry loop by @thomhurst in #235
- Add list count pops by @thomhurst in #236
- Report every batch failure by @thomhurst in #239
- Unify deferred command queues by @thomhurst in #238
- Encode char arguments as text by @thomhurst in #232
- Polish bitmap APIs by @thomhurst in #240
- Polish small facet API gaps by @thomhurst in #237
- Polish lock lifecycle APIs by @thomhurst in #241
- Add per-subscription pub/sub options by @thomhurst in #242
- Reuse watched transaction connections by @thomhurst in #244
- Add advanced sorted-set ranges by @thomhurst in #247
- Expand stream add and range options by @thomhurst in #245
- Unify combined-get operations by @thomhurst in #243
- Split watched and unwatched transaction types by @thomhurst in #246
- Add stream consumer recovery by @thomhurst in #249
- Add sorted set algebra and typed reads by @thomhurst in #248
- Update dependency Microsoft.Extensions.Hosting.Abstractions to 10.0.11 by @thomhurst in #273
- Update dependency System.IO.Hashing to 10.0.11 by @thomhurst in #274
- Update dependency System.Diagnostics.DiagnosticSource to 10.0.11 by @thomhurst in #275
- Update dependency System.IO.Pipelines to 10.0.11 by @thomhurst in #276
- Update dependency dotnet-sdk to v10.0.400 by @thomhurst in #277
- Update dependency TUnit to 1.64.13 by @thomhurst in #278
- Update Microsoft.Extensions to 10.0.11 by @thomhurst in #279
- Reduce async hot-path allocations by @thomhurst in #280
- Update dependency Microsoft.Extensions.Caching.Hybrid to 10.9.0 by @thomhurst in #281
- Update dependency Polyfill to 11.2.0 by @thomhurst in #283
- perf: pool timeout cancellation sources by @thomhurst in #282
- Update dependency Reservoir to 1.1.0 by @thomhurst in #284
- Update dependency Reservoir to 1.1.2 by @thomhurst in #286
- Update dependency TUnit to 1.65.0 by @thomhurst in #287
- Update dependency Reservoir to 1.2.0 by @thomhurst in #288
- Upgrade Reservoir to 1.2.0 by @thomhurst in #285
- Update dependency Reservoir to 1.2.3 by @thomhurst in #289
- Migrate response pools to Reservoir by @thomhurst in #290
- Update dependency Reservoir to 1.3.0 by @thomhurst in #291
- Update dependency Reservoir to 1.4.0 by @thomhurst in #292
- Update dependency Testcontainers.Redis to 4.14.0 by @thomhurst in #293
- Add RESP3 server-assisted client-side caching by @thomhurst in #299
Full Changelog: v0.5.0...v0.6.1
NuGet packages
dotnet add package Respire --version 0.6.1
dotnet add package Respire.Extensions.Caching --version 0.6.1
dotnet add package Respire.Extensions.Caching.Hybrid --version 0.6.1
dotnet add package Respire.Extensions.DependencyInjection --version 0.6.10.5.0
What's Changed
- Enforce CommandTimeout via per-connection deadline sweep by @thomhurst in #189
Full Changelog: v0.4.0...v0.5.0
NuGet packages
dotnet add package Respire --version 0.5.0
dotnet add package Respire.Extensions.Caching --version 0.5.0
dotnet add package Respire.Extensions.Caching.Hybrid --version 0.5.0
dotnet add package Respire.Extensions.DependencyInjection --version 0.5.00.4.0
What's Changed
- Add command flags by @thomhurst in #97
- feat(api): cancellation overloads for multi-key commands by @thomhurst in #108
- refactor(client)!: collapse ExecuteAsync overloads, drop throwing interface defaults by @thomhurst in #104
- ci(benchmarks): raise measurement quality for published results by @thomhurst in #110
- feat(locks): RespireLock handle with auto token + async dispose release by @thomhurst in #102
- feat(api)!: RespireTtl expiry union replaces expiry/keepTtl sprawl by @thomhurst in #106
- feat(batch)!: facet-structured batch/transaction surface with client-facet naming parity by @thomhurst in #109
- feat(pubsub)!: awaited SubscribeAsync activation, lazy Subscribe removed by @thomhurst in #103
- ci(benchmarks): run only on manual dispatch and schedule by @thomhurst in #111
- feat(api): TryGetAsync + typed read/write symmetry across facets by @thomhurst in #105
- Make IRespireClient.TryGetAsync abstract by @thomhurst in #147
- Add TryGetValue to RespireGet by @thomhurst in #148
- Make lock acquisition results explicit by @thomhurst in #154
- Release resources on empty transaction commits by @thomhurst in #152
- Reject null Redis command arguments by @thomhurst in #151
- Clarify bitmap return semantics by @thomhurst in #153
- Parse StackExchange.Redis connection strings by @thomhurst in #150
- Fault pendings when an unsent batch is discarded by @thomhurst in #156
- Harden deferred batch and transaction execution by @thomhurst in #157
- Optimize ASCII RESP string writes by @thomhurst in #158
- Unify collection cardinality naming by @thomhurst in #155
- Add endpoint and error context to connection state events by @thomhurst in #149
- Improve exception ergonomics by @thomhurst in #160
- Clarify expiry input and TTL result types by @thomhurst in #161
- Expose deferred result lifecycle state by @thomhurst in #159
- Optimize RESP string decoding by @thomhurst in #163
- Report per-command failures from batch flushes by @thomhurst in #165
- Optimize root GET shortcuts by @thomhurst in #167
- Add RespireKey and RespireValue equality by @thomhurst in #162
- Internalize the RESP protocol layer by @thomhurst in #169
- Use synchronous names for deferred commands by @thomhurst in #166
- perf: ASCII fast path for UTF-8 string decoding by @thomhurst in #171
- Align return and result types across command facets by @thomhurst in #164
- Add async collection scan APIs by @thomhurst in #173
- Polish string and GEO command naming by @thomhurst in #172
- Add typed collection read overloads by @thomhurst in #175
- Expand set and sorted-set command coverage by @thomhurst in #174
- Add scripts and typed TryGet to deferred commands by @thomhurst in #176
- perf: direct bulk-string response path for GET-family commands by @thomhurst in #179
- Normalize variadic API overloads by @thomhurst in #177
- Polish key and server facets by @thomhurst in #180
- Improve DI and cache registration ergonomics by @thomhurst in #182
- Unify expiry APIs around RespireExpiry by @thomhurst in #170
- Improve pooled result and lease ergonomics by @thomhurst in #181
- Enforce public API documentation by @thomhurst in #184
- Improve pub/sub subscription observability by @thomhurst in #187
- Tighten RespireOptions defaults and validation by @thomhurst in #183
- Add trim and NativeAOT serialization support by @thomhurst in #186
- feat(analyzers): RESP001 undisposed result, RESP002 pending read before flush by @thomhurst in #107
- Simplify command escape hatch by @thomhurst in #178
- Improve distributed lock ergonomics by @thomhurst in #185
- Reduce command timeout overhead by @thomhurst in #188
Full Changelog: v0.3.43...v0.4.0
NuGet packages
dotnet add package Respire --version 0.4.0
dotnet add package Respire.Extensions.Caching --version 0.4.0
dotnet add package Respire.Extensions.Caching.Hybrid --version 0.4.0
dotnet add package Respire.Extensions.DependencyInjection --version 0.4.0