dynamo

expressive DynamoDB library for Go

OTHER License

Stars
1.3K
Committers
38
dynamo - Fix encoding panic Latest Release

Published by guregu about 2 months ago

This is a bugfix release.

  • Fixes a panic with omitempty and fields with embedded structs (#247)

Full Changelog: https://github.com/guregu/dynamo/compare/v2.2.0...v2.2.1

dynamo - Get items from condition check failures

Published by guregu 2 months ago

This release adds CurrentValue to Put/Delete/Update that returns the current value if a condition fails (or the value you gave it if it succeeds). Alternatively, you can use IncludeItemInCondCheckFail and UnmarshalItemFromCondCheckFailed to grab the item from an error manually. There are also similar methods for transactions. See: #245, #246.

What's Changed

Full Changelog: https://github.com/guregu/dynamo/compare/v2.1.1...v2.2.0

dynamo - v2.1.1

Published by guregu 3 months ago

This release improves the documentation. No code changes. Thank you to @tamccall for the contribution.

What's Changed

New Contributors

Full Changelog: https://github.com/guregu/dynamo/compare/v2.1.0...v2.1.1

dynamo - Request count tracking

Published by guregu 3 months ago

This release adds a new field to ConsumedCapacity that tracks the number of requests made. See: #241, #238.

What's Changed

Full Changelog: https://github.com/guregu/dynamo/compare/v2.0.2...v2.1.0

dynamo - BatchGet grouping fix

Published by guregu 4 months ago

This is a bugfix release that fixes a performance regression in v2 BatchGet.

  • Fix for: Batch Get making multiple calls even for smaller batches (#240)
    • Thank you @lzrf0cuz for the report and fix suggestion!

Full Changelog: https://github.com/guregu/dynamo/compare/v2.0.1...v2.0.2

dynamo - Fix for ConsumedCapacity in conditional writes

Published by guregu 4 months ago

Fixes a panic when a conditional put/delete/update using ConsumedCapacity fails.

What's Changed

New Contributors

Full Changelog: https://github.com/guregu/dynamo/compare/v2.0.0...v2.0.1

dynamo - dynamo v2

Published by guregu 4 months ago

This is the first release of dynamo v2, which uses aws-sdk-go-v2 (PRs: #206, #232).

For tips on migration from v1, check out this new section of the README: Migration Tips.

The API is mostly the same as v1, but there are some changes:

  • All request methods take context now (e.g. OneWithContext is now One).
  • Retrying is configured through aws-sdk-go-v2, see Retrying docs.
    • This changes the default behavior for transactions, to get the v1 behavior back use dynamo.RetryTxConflicts (see above doc for usage example).
  • Arguments that took int64 (such as in Query.Limit) now take int instead.
  • PagingIter.LastEvaluatedKey can return an error now (in rare situations when IAM is misconfigured).
  • KMSMasterKeyArn renamed to KMSMasterKeyARN.

v1 may continue to see new releases for bugfixes and such: v1 branch. Please feel free to report issues for both v1 and v2. Note that AWS is going to end support for the v1 SDK soon, although we can expect that it will continue to work.

Thank you to everyone who contributed (especially @niltonkummer and @irohiroki who contributed to the v2 port), and to everyone who had patience for this long-awaited release.

dynamo - RequestLimit & more fixes

Published by guregu 5 months ago

This release includes a small new feature and an important bug fix.

  • New feature: RequestLimit for Query and Scan for finer control of internal pagination (#231)
  • Bug fix: Panic on saving struct with pointer to anonymous struct (#233)
dynamo - Better recursive type support

Published by guregu 6 months ago

  • Support nested recursion in types (A → B → A and so on) (#227)
dynamo - Encoding fixes

Published by guregu 6 months ago

This release fixes these issues:

Many thanks to everyone who reported the issues.
Note: v1.22.0 has been retracted. Please upgrade to the latest version if you're on it.

dynamo - Fix decoding pointer fields to slices

Published by guregu 6 months ago

This is a bugfix release for the following issues related to the new encoding in v1.22:

Please note the following issues are still around:

A fix for them should be out shortly.

dynamo - Faster encoding and multi-table batches

Published by guregu 9 months ago

What's Changed

  • Optimize encoding by @guregu in https://github.com/guregu/dynamo/pull/224
    • Much faster encoding and decoding, see above for benchmarks (~1.5x faster, ~2x less allocs)
  • Support multiple tables in BatchWrite and BatchGet by @guregu in https://github.com/guregu/dynamo/pull/226
    • (*BatchWrite).PutIn for putting items in other tables
    • (*BatchWrite).DeleteIn and (*BatchWrite).DeleteInRange for deleting items in other tables
    • (*BatchWrite).Merge for merging batch writes together
    • (*BatchGet).From and (*BatchGet).FromRange for getting items from other tables
    • (*BatchGet).Merge for merging batch gets together
    • (*BatchGet).ProjectTable for specifying table-specific projections
    • (*BatchGet).IterWithTable for creating an iterator that keeps track of which table each item comes from
  • Add automated testing against DynamoDB local using GitHub Actions
    • Integration tests are easier to run now, see README

Full Changelog: https://github.com/guregu/dynamo/compare/v1.21.0...v1.22.0

Bonus: v2 preview available

dynamo v2 will target aws-sdk-go v2 and is (finally) nearing completion.
You can test it by depending on the v2-dev branch:

go get github.com/guregu/dynamo/v2@v2-dev

Feedback is welcome at #206.

dynamo - Encoding optimization (pre)

Published by guregu 11 months ago

Includes #224 which greatly improves the speed and memory usage of marshaling/unmarshaling. See benchmarks in #224, or try running them locally.
If you've got a test suite that uses dynamo, it would help me a lot if you run this pre-release against it and let me know if you find anything weird.
Thanks and please look forward to a release soon. I've been running this on one of my services for a little while and it's looking good so far.

dynamo - Configurable retrying

Published by guregu about 1 year ago

What's Changed

Full Changelog: https://github.com/guregu/dynamo/compare/v1.20.2...v1.21.0

dynamo - v1.20.2

Published by guregu about 1 year ago

Bugfix release.

  • Fix nil pointer panic in DescribeTable for LSIs in Global Tables (#220)
    • Thanks @chyi-code for the bug report

Full Changelog: https://github.com/guregu/dynamo/compare/v1.20.1...v1.20.2

dynamo - ErrTooMany + Limit(1) fix

Published by guregu over 1 year ago

This is a minor bugfix release.

  • Don't return ErrTooMany in Query.One when Limit is set to 1
  • Update dependencies

Full Changelog: https://github.com/guregu/dynamo/compare/v1.20.0...v1.20.1

dynamo - Parallel Scans

Published by guregu over 1 year ago

This release adds new methods for Scan to create parallel iterators (#20): Scan.IterParallel, Scan.AllParallel and paginating versions. The parallel iterators handle the concurrency and segmenting of parallel scan requests automatically.

What's Changed

Full Changelog: https://github.com/guregu/dynamo/compare/v1.19.0...v1.20.0

dynamo - Manual parallel Scan support

Published by guregu over 1 year ago

What's Changed

Full Changelog: https://github.com/guregu/dynamo/compare/v1.18.3...v1.19.0

dynamo - Minor context fix

Published by guregu over 1 year ago

  • Fix GetTx using the default context instead of the given one
  • Update deps

Full Changelog: https://github.com/guregu/dynamo/compare/v1.18.2...v1.18.3

dynamo - Improved errors

Published by guregu over 1 year ago

This is a minor release that improves some error checking.

  • Added proper error messages for missing expression placeholder arguments (#212)
    • Previously this led to OOB slice access panic, now it returns a descriptive error
  • Added checks for nil/omitted primary key values (7768ebdc196096f9c9997469975e4285019a1f8a)
    • Previously this could result in a cryptic AWS ValidationError (using real DynamoDB) or DynamoDB local freezing
  • Updated AWS SDK

Full Changelog: https://github.com/guregu/dynamo/compare/v1.18.1...v1.18.2