All notable changes to this project will be documented in this file.
- Add accessors for
AppendRecord(#305) - [breaking] Add lower bounds for
max_batch_bytesandmax_batch_records(#309) - [breaking] Reduce default
max_unacked_bytesto5MiB(#311)
- Replace
reqwestwithhyper-utiland add client pooling (#298) - [breaking] Make
idempotency_tokenprivate (#306) - [breaking] Remove unnecessary
Resultfromwith_max_unacked_batches(#307) - Remove unnecessary compression for GET and DELETE requests (#308)
- Rename fields, methods, and vars related to
RetryBackoff(#310) - [breaking] Make
S2DateTimeconversion fromtime::OffsetDateTimefallible (#312)
- Deplete read session wait budget on retry (#293)
- Io errors nested in hyper request errors not classified as retryable (#295)
- Relax version constraint for
s2-apiands2-common(#291)
- Incorrect condition for retry on 409 (#288)
- Update dependencies (#290)
- Violation of oneof constraint in
ReadStartduring read session retry (#286)
- Explicitly enable git tagging and releases in release-plz (#276)
- Rename S2_INSECURE to S2_SSL_NO_VERIFY (#278)
- Have release-plz publish to crates.io directly (#273)
- SSL cert insecure mode (#272)
- [breaking] Make
S2Endpoints::newacceptAccountEndpointandBasinEndpoint(#264) - [breaking] Rename
max_inflight_*tomax_unacked_*inAppendSessionConfig(#265) - [breaking] Rename
ignore_pending_deletionstoinclude_deletedinListAll*Inputs (#266)
- SDK documentation examples + change to pagination defaults (#262)
- Terminal error propagation in append session and producer (#259)
- Bump
s2-apiands2-commonversions (#260)
- Racy error propagation in append session (#257)
- Missing
CONTENT_ENCODINGheader for unary requests (#247)
- Add
parse_fromtoS2Endpointsfor internal use (#245)
- [breaking] Migrate from
gRPCtoRESTAPI (#220) - [breaking] Add validation for
AppendSessionConfig(#225) - [breaking] Add
list_all_*methods for automatic pagination (#235) - Support
start_afterinlist_all_*ops (#237) - [breaking] Expose
reserveinAppendSession, supportreserveinProducer(#229) - Expose
RECORD_BATCH_MAX(#242)
- Incorrect lexicographical order in tests (#228)
- Unhandled error variants in session ops (#230)
- Misclassification of 409 as non-retryable (#236)
- Make
RetryConfig::max_attemptsfield aNonZeroU32as 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
ReadBeyondTailasReadUnwritten, changeread_sessionreturn type (#234) - [breaking] Remove
non_exhaustivemarker for enums, makeIssueAccessTokenInputandAccessTokenInfosymmetrical (#238) - Consume backoffs lazily (#239)
- [breaking] Rename
streamstorecrate tos2-sdk(#221) - Include package version in
User-Agentheader (#243)
- Fix basin/stream collisions (#241)
- Update license to MIT (#222)
- Crates.io only allows 5 keywords (#232)
- Add categories to Cargo manifest (#233)
- Bump
s2-apiands2-commonversions (#240)
- Upgrade to tonic & prost 0.14 (#212)
- Support
Infiniteretention policy (#209)
- Append session assertion failure (#206)
- Renaming DeleteOnEmpty -> DeleteOnEmptyConfig (#202)
- Delete-on-empty (#199)
- Fixes to delete-on-empty impl (#200)
- 0.18.0 (#198)
- Clamp (#197)
untiltimestamp in reads + new metrics op types (#193)
- Derive
PartialEq,Eq,Hashon stringy newtypes (#191)
- Impl
FromStr/DisplayforFencingToken(#189)
- [breaking] Fencing token is now a string (#185)
- Retry on
ResourceExhaustedand useretry-afterif present (#177)
- Timestamping config and refactoring of type conversion (#179)
- Dependency upgrades (#180)
- [breaking] Updated read APIs (#174)
- [breaking] Remove
ReadOutput::FirstSeqNum(#169)
- Access token example (#168)
- Access token methods [S2-758] (#163)
- [breaking] Timestamped records (#157)
- Configurable option for compression (#151)
- Retry CANCELLED gRPC status code (#149)
- Enable compression (#147)
- Respect limits with read session resumption (#139)
- Make
with_limit()take option (#145)
- Update proto (#135)
- Update README link for docs.rs (#128)
- Update S2 doc links (#126)
batchingmodule Rust docs (#119)- Update basin and stream names (#122)
- Update README API link (#123)
s2::client(#121)- Crate level documentation (#124)
- Rename
[lib]tos2(#120) - (release) 0.5.0
- Deadlock potential due to
awaits in append_session'sselect!loop (#115)
- Remove
GH_TOKENuse to clone submodule in CI (#109) - Proto up-to-date check (#112)
- Upgrade proto (#111)
- Add examples for API (#113)
- Add
README.md(#116)
- Switch on
missing_docs(#106)
- Return reconfigured stream (#95)
- Implement
SequencedRecord::as_command_record(#96) - Make protoc requirement optional (#103)
- Tonic-side-effect version (#102)
- Update proto and associated types for non-optional
start_seq_num(#97) CommandRecord::FencerequiresFencingTokeneven if empty (#98)- Rm serde (#99)
- Lower
max_append_inflight_bytesdefault - Move sync_docs to separate repository (#101)
- 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)
- Only connect lazily (remove option to connect eagerly) (#49)
- Update
HostEndpoints::from_envwith 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
ConnectionErrorin favour of pre-processing (#68) - Rename 'max_retries' to 'max_attempts'
- Validate
types::AppendRecordfor metered size (#79) - Adapt to recent gRPC interface updates (#84)
- Use
if_existsfor delete basin/stream (#85) append_sessioninner loop while condition (#91)
- ConnectError
fencing_tokenandmatch_seq_numforAppendRecordsBatchStream(#77)
- Rename
ClientErrortoConnectError(#47) - Make
ReadLimitfields 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
HostCloudforHostEndpoints(#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
ClientConfigfields 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
bytesizedependency (#89) - Update proto (#93)
- 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
AppendRecordStreamwith 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)
- Update proto submodule (#7)
- Replace url with http::uri::Uri (#6)
- Update
HAS_NO_SIDE_EFFECTStoIDEMPOTENCY_LEVEL(#11) - FromStr impl to convert str to StorageClass enum (#13)
- Move
get_basin_config,reconfigure_basintoAccountService(#17) - Remove usage of deprecated
tonic_buildmethod (#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)