Skip to content

Releases: guregu/dynamo

RequestLimit & more fixes

18 May 19:21
929601d
Compare
Choose a tag to compare

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)

Better recursive type support

05 May 03:45
17ebbaf
Compare
Choose a tag to compare
  • Support nested recursion in types (A → B → A and so on) (#227)

Encoding fixes

04 May 17:05
aa3c35c
Compare
Choose a tag to compare

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.

Fix decoding pointer fields to slices

04 May 13:38
0b7cb6b
Compare
Choose a tag to compare

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

  • Scan All Repeats First Element #228
  • Encoding slices is broken on 1.22 when using structs pointer fields #230

Please note the following issues are still around:

  • Recursive structs breaking #227 (fixed in 1.22.2)
  • Encoding Issue: unsupported type structpb.isValue_Kind #229 (fixed in 1.22.2)

Faster encoding and multi-table batches

12 Feb 05:59
c2e6f02
Compare
Choose a tag to compare

What's Changed

  • Optimize encoding by @guregu in #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 #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: 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.

Encoding optimization (pre)

07 Dec 23:53
e8575d2
Compare
Choose a tag to compare
Pre-release

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.

Configurable retrying

20 Oct 02:27
b4239a9
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.20.2...v1.21.0

v1.20.2

17 Aug 04:46
Compare
Choose a tag to compare

Bugfix release.

  • Fix nil pointer panic in DescribeTable for LSIs in Global Tables (#220)

Full Changelog: v1.20.1...v1.20.2

ErrTooMany + Limit(1) fix

23 Jul 00:53
Compare
Choose a tag to compare

This is a minor bugfix release.

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

Full Changelog: v1.20.0...v1.20.1

Parallel Scans

09 Jul 10:50
Compare
Choose a tag to compare

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

  • Add parallel scan by @guregu in #219
  • Use context.Context instead of aws.Context (which is a type alias to context.Context)
  • Update dependencies

Full Changelog: v1.19.0...v1.20.0