Skip to content
This repository was archived by the owner on Feb 16, 2026. It is now read-only.

Latest commit

 

History

History
531 lines (324 loc) · 22.2 KB

File metadata and controls

531 lines (324 loc) · 22.2 KB

Changelog

All notable changes to this project will be documented in this file.

[0.24.0] - 2026-02-15

Features

  • Add accessors for AppendRecord (#305)
  • [breaking] Add lower bounds for max_batch_bytes and max_batch_records (#309)
  • [breaking] Reduce default max_unacked_bytes to 5MiB (#311)

Refactor

  • Replace reqwest with hyper-util and add client pooling (#298)
  • [breaking] Make idempotency_token private (#306)
  • [breaking] Remove unnecessary Result from with_max_unacked_batches (#307)
  • Remove unnecessary compression for GET and DELETE requests (#308)
  • Rename fields, methods, and vars related to RetryBackoff (#310)
  • [breaking] Make S2DateTime conversion from time::OffsetDateTime fallible (#312)

Testing

  • Metrics (#297)
  • Basin & stream api (#300)

Miscellaneous Tasks

  • Bump dependencies (#296)
  • Dep updates (#314)

[0.23.8] - 2026-02-07

Bug Fixes

  • Deplete read session wait budget on retry (#293)
  • Io errors nested in hyper request errors not classified as retryable (#295)

[0.23.7] - 2026-02-05

Miscellaneous Tasks

  • Relax version constraint for s2-api and s2-common (#291)

[0.23.6] - 2026-02-04

Bug Fixes

  • Incorrect condition for retry on 409 (#288)

Miscellaneous Tasks

  • Update dependencies (#290)

[0.23.5] - 2026-02-02

Bug Fixes

  • Violation of oneof constraint in ReadStart during read session retry (#286)

[0.23.4] - 2026-01-31

Miscellaneous Tasks

  • Release workflow naming (#279)
  • Dependency upgrades (#285)

[0.23.3] - 2026-01-27

Bug Fixes

  • Explicitly enable git tagging and releases in release-plz (#276)
  • Rename S2_INSECURE to S2_SSL_NO_VERIFY (#278)

[0.23.2] - 2026-01-26

Bug Fixes

  • Have release-plz publish to crates.io directly (#273)

[0.23.1] - 2026-01-26

Features

  • SSL cert insecure mode (#272)

Miscellaneous Tasks

  • Automate releases with release-plz (#268)
  • Add dependabot for weekly dependency updates (#269)

[0.23.0] - 2026-01-21

Refactor

  • [breaking] Make S2Endpoints::new accept AccountEndpoint and BasinEndpoint (#264)
  • [breaking] Rename max_inflight_* to max_unacked_* in AppendSessionConfig (#265)
  • [breaking] Rename ignore_pending_deletions to include_deleted in ListAll*Inputs (#266)

[0.22.5] - 2026-01-20

Miscellaneous Tasks

  • SDK documentation examples + change to pagination defaults (#262)

[0.22.4] - 2026-01-18

Bug Fixes

  • Terminal error propagation in append session and producer (#259)

Miscellaneous Tasks

  • Bump s2-api and s2-common versions (#260)

[0.22.3] - 2026-01-18

Bug Fixes

  • Racy error propagation in append session (#257)

Miscellaneous Tasks

  • Run tests against s2-lite (#249)
  • Update s2-lite integration action (#256)

[0.22.2] - 2026-01-15

Bug Fixes

  • Missing CONTENT_ENCODING header for unary requests (#247)

[0.22.1] - 2026-01-14

Miscellaneous Tasks

  • Add parse_from to S2Endpoints for internal use (#245)

[0.22.0] - 2026-01-14

Features

  • [breaking] Migrate from gRPC to REST API (#220)
  • [breaking] Add validation for AppendSessionConfig (#225)
  • [breaking] Add list_all_* methods for automatic pagination (#235)
  • Support start_after in list_all_* ops (#237)
  • [breaking] Expose reserve in AppendSession, support reserve in Producer (#229)
  • Expose RECORD_BATCH_MAX (#242)

Bug Fixes

  • Incorrect lexicographical order in tests (#228)
  • Unhandled error variants in session ops (#230)
  • Misclassification of 409 as non-retryable (#236)

Refactor

  • Make RetryConfig::max_attempts field a NonZeroU32 as well (#223)
  • Remove irrelevant backoff reset in unary request context (#224)
  • [breaking] Restrict public items for misuse safety (#227)
  • [breaking] Make tests runnable against non-prod envs (#231)
  • [breaking] Rename ReadBeyondTail as ReadUnwritten, change read_session return type (#234)
  • [breaking] Remove non_exhaustive marker for enums, make IssueAccessTokenInput and AccessTokenInfo symmetrical (#238)
  • Consume backoffs lazily (#239)
  • [breaking] Rename streamstore crate to s2-sdk (#221)
  • Include package version in User-Agent header (#243)

Testing

  • Fix basin/stream collisions (#241)

Miscellaneous Tasks

  • Update license to MIT (#222)
  • Crates.io only allows 5 keywords (#232)
  • Add categories to Cargo manifest (#233)
  • Bump s2-api and s2-common versions (#240)

[0.21.0] - 2025-09-11

Miscellaneous Tasks

  • Upgrade to tonic & prost 0.14 (#212)

[0.20.0] - 2025-09-03

Features

  • Support Infinite retention policy (#209)

[0.19.2] - 2025-08-13

Bug Fixes

  • Append session assertion failure (#206)

[0.19.1] - 2025-07-28

Miscellaneous Tasks

  • Renaming DeleteOnEmpty -> DeleteOnEmptyConfig (#202)

[0.19.0] - 2025-07-24

Features

  • Delete-on-empty (#199)

Miscellaneous Tasks

  • Fixes to delete-on-empty impl (#200)

Release

[0.18.0] - 2025-07-22

Features

[0.17.0] - 2025-06-06

Features

  • until timestamp in reads + new metrics op types (#193)

Miscellaneous Tasks

  • Derive PartialEq, Eq, Hash on stringy newtypes (#191)

[0.16.2] - 2025-05-25

Features

  • Impl FromStr / Display for FencingToken (#189)

[0.16.1] - 2025-05-25

[0.16.0] - 2025-05-25

Features

  • [breaking] Fencing token is now a string (#185)

[0.15.0] - 2025-05-10

Features

  • Retry on ResourceExhausted and use retry-after if present (#177)

[0.14.0] - 2025-05-08

Features

  • Timestamping config and refactoring of type conversion (#179)

Miscellaneous Tasks

  • Dependency upgrades (#180)

[0.13.0] - 2025-04-30

Features

  • [breaking] Updated read APIs (#174)

[0.12.0] - 2025-04-18

Features

  • [breaking] Remove ReadOutput::FirstSeqNum (#169)

Bug Fixes

  • Access token example (#168)

Miscellaneous Tasks

  • Add missing builders (#170)
  • Dependency upgrades (#171)

[0.11.0] - 2025-04-15

Features

  • Access token methods [S2-758] (#163)

[0.10.0] - 2025-03-19

Features

  • [breaking] Timestamped records (#157)

[0.9.0] - 2025-03-12

Features

  • Configurable option for compression (#151)

Miscellaneous Tasks

  • Upgrade proto (#153)
  • Proto update (#154)

[0.8.2] - 2025-02-07

Bug Fixes

  • Retry CANCELLED gRPC status code (#149)

[0.8.1] - 2025-02-05

Features

  • Enable compression (#147)

[0.8.0] - 2025-01-21

Bug Fixes

  • Respect limits with read session resumption (#139)

Miscellaneous Tasks

  • Make with_limit() take option (#145)

[0.7.0] - 2025-01-16

Miscellaneous Tasks

  • Update proto (#135)

[0.6.0] - 2025-01-13

Documentation

  • Update README link for docs.rs (#128)

Miscellaneous Tasks

  • Update proto (#129)
  • Default impl for AppendInput (#130)
  • Update protos (#133)

[0.5.1] - 2024-12-20

Documentation

  • Update S2 doc links (#126)

[0.5.0] - 2024-12-19

Documentation

  • batching module Rust docs (#119)
  • Update basin and stream names (#122)
  • Update README API link (#123)
  • s2::client (#121)
  • Crate level documentation (#124)

Miscellaneous Tasks

  • Rename [lib] to s2 (#120)
  • (release) 0.5.0

[0.4.1] - 2024-12-17

Bug Fixes

  • Deadlock potential due to awaits in append_session's select! loop (#115)

[0.4.0] - 2024-12-16

Features

  • Add FencingToken::generate method (#110)
  • Return StreamInfo from BasinClient::create_stream (#114)

Miscellaneous Tasks

  • Remove GH_TOKEN use to clone submodule in CI (#109)
  • Proto up-to-date check (#112)
  • Upgrade proto (#111)
  • Add examples for API (#113)
  • Add README.md (#116)

[0.3.1] - 2024-12-12

Miscellaneous Tasks

  • Switch on missing_docs (#106)

[0.3.0] - 2024-12-11

Features

  • Return reconfigured stream (#95)
  • Implement SequencedRecord::as_command_record (#96)
  • Make protoc requirement optional (#103)

Bug Fixes

  • Tonic-side-effect version (#102)

Miscellaneous Tasks

  • Update proto and associated types for non-optional start_seq_num (#97)
  • CommandRecord::Fence requires FencingToken even if empty (#98)
  • Rm serde (#99)
  • Lower max_append_inflight_bytes default
  • Move sync_docs to separate repository (#101)

[0.2.0] - 2024-12-04

Features

  • Redo endpoint logic (#39) (#40)
  • Metered_size impl (#51)
  • Allow custom tonic connectors & expose more errors (#54)
  • Implement lingering for append record stream (#55)
  • Read session resumption (#64)
  • Pre-validate append record batch (#72)
  • Retryable append_session + side-effect logic
  • Validate fencing token length (#87)
  • S2_request_token header (exercise idempotence) (#86)

Bug Fixes

  • Only connect lazily (remove option to connect eagerly) (#49)
  • Update HostEndpoints::from_env with new spec (#58)
  • Add Send bound to Streaming wrapper (#63)
  • Validate append input when converting from sdk type to api (#65)
  • Limit retries when read resumes but stream keeps erroring (#66)
  • Retry on deadline exceeded (#67)
  • Remove ConnectionError in favour of pre-processing (#68)
  • Rename 'max_retries' to 'max_attempts'
  • Validate types::AppendRecord for metered size (#79)
  • Adapt to recent gRPC interface updates (#84)
  • Use if_exists for delete basin/stream (#85)
  • append_session inner loop while condition (#91)

Documentation

  • ConnectError

Testing

  • fencing_token and match_seq_num for AppendRecordsBatchStream (#77)

Miscellaneous Tasks

  • Rename ClientError to ConnectError (#47)
  • Make ReadLimit fields pub
  • Add clippy to CI (#50)
  • Expose Aborted as an error variant (#52)
  • Expose tonic Internal error message (#53)
  • Refactor errors to return tonic::Status (#57)
  • Conversion from HostCloud for HostEndpoints (#59)
  • Rm unneeded async (#62)
  • Create LICENSE
  • Update Cargo.toml with license
  • Update license for sync_docs
  • Add expect messages instead of unwraps (#69)
  • Make ClientConfig fields private + revise docs (#73)
  • Whoops, max_attempts -> with_max_attempts
  • Endpoints re-rejig (#70)
  • Add back S2Endpoints::from_env() (#74)
  • Example from_env
  • Assertions instead of errors for batch capacity & size (#75)
  • Simplify s2_request_token creation
  • Remove bytesize dependency (#89)
  • Update proto (#93)

[0.1.0] - 2024-11-06

Features

  • Implement BasinService/{ListStreams, GetBasinConfig} (#3)
  • Implement BasinService/{CreateStream, GetStreamConfig} (#8)
  • Implement AccountService/{ListBasins, DeleteBasin} (#10)
  • Implement BasinService (#12)
  • Add request timeout (#14)
  • Display impl for types::BasinState (#18)
  • Implement StreamService (complete) (#16)
  • Implement AppendRecordStream with batching support (#24)
  • Enable tls config and make connection uri depend on env (#25)
  • Doc reuse (#32)
  • Support for overriding user-agent (#33)
  • Sync rpc - sdk wrapper docs (#34)

Bug Fixes

  • Use usize for ListBasins (#15)
  • Make all errors public (#20)

Miscellaneous Tasks

  • Update proto submodule (#7)
  • Replace url with http::uri::Uri (#6)
  • Update HAS_NO_SIDE_EFFECTS to IDEMPOTENCY_LEVEL (#11)
  • FromStr impl to convert str to StorageClass enum (#13)
  • Move get_basin_config, reconfigure_basin to AccountService (#17)
  • Remove usage of deprecated tonic_build method (#21)
  • Add+feature-gate serde Serialize/Deserialize derives (#22)
  • Deps
  • Updated repo for proto submodule (#38)
  • Http2 adaptive window [S2-412] (#41)
  • Add CI action (#44)
  • Add release action (#45)