PackageTrack
Sign in Get early access

github.com/philippgille/gokv

v0.7.0 #2061 most downloaded on Go modules philippgille/gokv

What this package is like to depend on

Last release 1 years ago

29 Jun 2025

Release timing varies

gaps range from 2 weeks to 2.3 years

Nearly every release is documented

notes for 7 of 7 stable releases

Nothing withdrawn

no release was ever pulled

8 years old

50 releases · first in 2018

0 releases in the last 12 months

see the full history below

Release timeline

50 releases · Oct 2018 to Jun 2025
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 50
  1. v0.7.1-0.20250629173028-c96b6b6bc373 29 Jun 2025 pre-release

    Nothing published for this version

  2. v0.7.1-0.20250627195511-62058bc225ad 27 Jun 2025 pre-release

    Nothing published for this version

  3. v0.7.1-0.20250627113229-1d71df2f2a1d 27 Jun 2025 pre-release

    Nothing published for this version

  4. v0.7.1-0.20250627094632-24142fe2ecd2 27 Jun 2025 pre-release

    Nothing published for this version

  5. v0.7.1-0.20240602190052-c954c5435f35 02 Jun 2024 pre-release

    Nothing published for this version

  6. v0.7.1-0.20240128200346-0a05f2ed73e8 28 Jan 2024 pre-release

    Nothing published for this version

  7. v0.7.0 28 Jan 2024
    Release notes

    Note that while we'll tag this with v0.7.0,
    that's only for the gokv root module - not
    for the other modules, which come later.
    Check tag 'release/v0.7.0' for the commit
    where the entire repo is at v0.7.0.

    Open source →
    Release notes

    After a very long time since the last release (v0.6.0) we're finally releasing v0.7.0! There's a new store implementation (noop), a new codec (protobuf) and various improvements, updates and fixes in the store implementations. We moved from Travis CI to GitHub Actions, introduced the use of Mage (a Makefile alternative in Go) and improved the test automation and CI process in general.

    This would not have been possible without the help of the new and existing contributors - thank you so much! I'm also thankful for the people who asked me about the project maintenance/activity after it has been dormant for a while, or pushed for a new release. Knowing that people make use of, like and care about the project means a lot!

    Note: For now we're doing one centralized release across the repository, while also tagging all separate modules individually as required by Go modules. In the future we might update and release the modules more independently.

    Note 2: Tag v0.7.0 points to v0.7.0 of the root gokv module, but the other modules in this repo are then updated and thus tagged separately (as required for Go modules). Check tag release/v0.7.0 for the commit at which the entire repo represents v0.7.0. See docs/releasing.md for details.

    Added

    • New codec: proto (for protocol buffers) (PR #127 by @glimchb)
      • Moved to subdirectory in PR #138
      • Usage example added in PR #144
      • Renamed from proto to protobuf in PR #171
    • New store implementation: noop (PR #126 by @peczenyj)
    • Optional timeout configuration for datastore store implementation (PR #133 by @glimchb)
    • Optional timeout configuration for redis store implementation (PR #130 by @glimchb)

    Improved

    Library:

    • Updated dependencies of all modules within the same major version (PR #108 + #145 + #166)
      • So except for a few required major version updates, all dependencies are now up-to-date as of 2024-01-07
    • Major update of BigCache dependency
    • dyanamodb tests are now independent of any AWS config/credential file (PR #108)
    • Updated Hazelcast dependency to v1.3.0 (PR #112 by @yuce)
    • Updated redis dependency from v6.15.9 to v9.2.1 (PR #130 by @glimchb)
    • Use any instead of interface{} (PR #150)
    • Block on etcd connection fail (PR #163)
    • Various security updates by @dependabot
    • Switch of used MongoDB dependency, from unmaintained github.com/globalsign/mgo to official go.mongodb.org/mongo-driver (PR #165)

    Tests / CI:

    • Test script (build/test.sh) now starts all required services instead of relying on Travis CI for some (PR #108)
    • Dependency update scripts (build/update-deps.sh/build/update-deps.ps1) were changed to only update direct dependencies (PR #108)
    • Migrated CI from Travis CI to GitHub Actions (PR #110)
    • Migrated from Bash and PowerShell build/test scripts to Mage (PR #111)
      • With this comes also the improvement that individual modules can now be tested. Like mage test redis. For testing all modules there's mage test all.
    • Added more Go versions in CI test matrix (PR #134 by @glimchb)
    • Use GitHub action for Mage (PR #135 by @glimchb)
    • Added Windows to CI build matrix (PR #139 by @glimchb)
    • Updated Mage from 1.13 to 1.15 (PR #148)
    • Better error handling in Magefile (PR #151)
    • Added Docker health check to test containers (PR #142 by @glimchb)
    • Use the Docker health checks to reduce wait time for containers in CI (PR #154)
    • Update and improve usage of GitHub Actions dependencies (PR #156)
    • Prefix test container names with gokv (PR #161)
    • Reduce test container wait time (PR #162)
    • Add Docker health checks to Consul and Memcached (PR #168)
    • Skip etcd concurrency test in CI (PR #172)
    • Remove test skipping on connection failure from almost all store implementations (PR #173)
    • Add Replace target in Magefile (PR #174)

    Fixes

    • Fixed gomap data race (PR #90 by @tdakkota)
      • Includes a regression test covering most (if not all) storage-specific implementations 👍
    • Fixed double CI builds when maintainer pushed a commit to an open PR (PR #143)
    • Fix concurrency tests (PR #176)

    Breaking changes

    • redis store now has a default timeout of 2 seconds (previously no timeout). You can customize/remove the timeout via the store's config. (PR #130 by @glimchb)
    • datastore store: Update of direct dependencies lead to indirect dependency update of google.golang.org/grpc from v1.46.0 to v1.59.0, which is incompatible with Go 1.18 due atomic.Int64 being used, which was introduced in Go 1.19.
    • The interface{} to any change makes gokv incompatible with Go version 1.17 and older. Please open an issue if you're stuck on an old Go version and would like us to revert this change.
    • The switch of the used MongoDB library from an unmaintained 3rd party library to the official one might make it incompatible with old MongoDB servers, or with data that was inserted with a previous version of gokv. This is just a warning - it's not confirmed. (PR #165

    New Contributors

    Open source →
    Release notes

    Note: For now we're doing one centralized release across the repository, while also tagging all separate modules individually as required by Go modules. In the future we might update and release the modules more independently.

    Note 2: Tag v0.7.0 points to v0.7.0 of the root gokv module, but the other modules in this repo are then updated and thus tagged separately (as required for Go modules). Check tag release/v0.7.0 for the commit at which the entire repo represents v0.7.0. See docs/releasing.md for details.

    Added

    • New codec: proto (for protocol buffers) (PR #127 by @glimchb)
      • Moved to subdirectory in PR #138
      • Usage example added in PR #144
      • Renamed from proto to protobuf in PR #171
    • New store implementation: noop (PR #126 by @peczenyj)
    • Optional timeout configuration for datastore store implementation (PR #133 by @glimchb)
    • Optional timeout configuration for redis store implementation (PR #130 by @glimchb)

    Improved

    Library:

    • Updated dependencies of all modules within the same major version (PR #108 + #145 + #166)
      • So except for a few required major version updates, all dependencies are now up-to-date as of 2024-01-07
    • Major update of BigCache dependency
    • dyanamodb tests are now independent of any AWS config/credential file (PR #108)
    • Updated Hazelcast dependency to v1.3.0 (PR #112 by @yuce)
    • Updated redis dependency from v6.15.9 to v9.2.1 (PR #130 by @glimchb)
    • Use any instead of interface{} (PR #150)
    • Block on etcd connection fail (PR #163)
    • Various security updates by @dependabot
    • Switch of used MongoDB dependency, from unmaintained github.com/globalsign/mgo to official go.mongodb.org/mongo-driver (PR #165)

    Tests / CI:

    • Test script (build/test.sh) now starts all required services instead of relying on Travis CI for some (PR #108)
    • Dependency update scripts (build/update-deps.sh/build/update-deps.ps1) were changed to only update direct dependencies (PR #108)
    • Migrated CI from Travis CI to GitHub Actions (PR #110)
    • Migrated from Bash and PowerShell build/test scripts to Mage (PR #111)
      • With this comes also the improvement that individual modules can now be tested. Like mage test redis. For testing all modules there's mage test all.
    • Added more Go versions in CI test matrix (PR #134 by @glimchb)
    • Use GitHub action for Mage (PR #135 by @glimchb)
    • Added Windows to CI build matrix (PR #139 by @glimchb)
    • Updated Mage from 1.13 to 1.15 (PR #148)
    • Better error handling in Magefile (PR #151)
    • Added Docker health check to test containers (PR #142 by @glimchb)
    • Use the Docker health checks to reduce wait time for containers in CI (PR #154)
    • Update and improve usage of GitHub Actions dependencies (PR #156)
    • Prefix test container names with gokv (PR #161)
    • Reduce test container wait time (PR #162)
    • Add Docker health checks to Consul and Memcached (PR #168)
    • Skip etcd concurrency test in CI (PR #172)
    • Remove test skipping on connection failure from almost all store implementations (PR #173)
    • Add Replace target in Magefile (PR #174)

    Fixes

    • Fixed gomap data race (PR #90 by @tdakkota)
      • Includes a regression test covering most (if not all) storage-specific implementations 👍
    • Fixed double CI builds when maintainer pushed a commit to an open PR (PR #143)
    • Fix concurrency tests (PR #176)

    Breaking changes

    • redis store now has a default timeout of 2 seconds (previously no timeout). You can customize/remove the timeout via the store's config. (PR #130 by @glimchb)
    • datastore store: Update of direct dependencies lead to indirect dependency update of google.golang.org/grpc from v1.46.0 to v1.59.0, which is incompatible with Go 1.18 due atomic.Int64 being used, which was introduced in Go 1.19.
    • The interface{} to any change makes gokv incompatible with Go version 1.17 and older. Please open an issue if you're stuck on an old Go version and would like us to revert this change.
    • The switch of the used MongoDB library from an unmaintained 3rd party library to the official one might make it incompatible with old MongoDB servers, or with data that was inserted with a previous version of gokv. This is just a warning - it's not confirmed. (PR #165

    New Contributors

    Open source →
    Release notes

    v0.7.0 (2024-01-28) Latest

    Latest

    Compare

    Choose a tag to compare

    Open source →
    Release notes

    Note: Tag v0.7.0 points to v0.7.0 of the root gokv module, but the other modules in this repo are then updated and thus tagged separately (as required for Go modules). Check tag release/v0.7.0 for the commit at which the entire repo represents v0.7.0. See docs/releasing.md for details.

    Added

    • New codec: proto (for protocol buffers) (PR #127 by @glimchb)
      • Moved to subdirectory in PR #138
      • Usage example added in PR #144
      • Renamed from proto to protobuf in PR #171
    • New store implementation: noop (PR #126 by @peczenyj)
    • Optional timeout configuration for datastore store implementation (PR #133 by @glimchb)
    • Optional timeout configuration for redis store implementation (PR #130 by @glimchb)

    Improved

    Library:

    • Updated dependencies of all modules within the same major version (PR #108 + #145 + #166)
      • So except for a few required major version updates, all dependencies are now up-to-date as of 2024-01-07
    • Major update of BigCache dependency
    • dyanamodb tests are now independent of any AWS config/credential file (PR #108)
    • Updated Hazelcast dependency to v1.3.0 (PR #112 by @juze)
    • Updated redis dependency from v6.15.9 to v9.2.1 (PR #130 by @glimchb)
    • Use any instead of interface{} (PR #150)
    • Block on etcd connection fail (PR #163)
    • Various security updates by @dependabot
    • Switch of used MongoDB dependency, from unmaintained github.com/globalsign/mgo to official go.mongodb.org/mongo-driver (PR #165)

    Tests / CI:

    • Test script (build/test.sh) now starts all required services instead of relying on Travis CI for some (PR #108)
    • Dependency update scripts (build/update-deps.sh/build/update-deps.ps1) were changed to only update direct dependencies (PR #108)
    • Migrated CI from Travis CI to GitHub Actions (PR #110)
    • Migrated from Bash and PowerShell build/test scripts to Mage (PR #111)
      • With this comes also the improvement that individual modules can now be tested. Like mage test redis. For testing all modules there's mage test all.
    • Added more Go versions in CI test matrix (PR #134 by @glimchb)
    • Use GitHub action for Mage (PR #135 by @glimchb)
    • Added Windows to CI build matrix (PR #139 by @glimchb)
    • Updated Mage from 1.13 to 1.15 (PR #148)
    • Better error handling in Magefile (PR #151)
    • Added Docker health check to test containers (PR #142 by @glimchb)
    • Use the Docker health checks to reduce wait time for containers in CI (PR #154)
    • Update and improve usage of GitHub Actions dependencies (PR #156)
    • Prefix test container names with gokv (PR #161)
    • Reduce test container wait time (PR #162)
    • Add Docker health checks to Consul and Memcached (PR #168)
    • Skip etcd concurrency test in CI (PR #172)
    • Remove test skipping on connection failure from almost all store implementations (PR #173)
    • Add Replace target in Magefile (PR #174)

    Fixes

    • Fixed gomap data race (PR #90 by @tdakkota)
      • Includes a regression test covering most (if not all) storage-specific implementations 👍
    • Fixed double CI builds when maintainer pushed a commit to an open PR (PR #143)
    • Fix concurrency tests (PR #176)

    Breaking changes

    • redis store now has a default timeout of 2 seconds (previously no timeout). You can customize/remove the timeout via the store's config. (PR #130 by @glimchb)
    • datastore store: Update of direct dependencies lead to indirect dependency update of google.golang.org/grpc from v1.46.0 to v1.59.0, which is incompatible with Go 1.18 due atomic.Int64 being used, which was introduced in Go 1.19.
    • The interface{} to any change makes gokv incompatible with Go version 1.17 and older. Please open an issue if you're stuck on an old Go version and would like us to revert this change.
    • The switch of the used MongoDB library from an unmaintained 3rd party library to the official one might make it incompatible with old MongoDB servers, or with data that was inserted with a previous version of gokv. This is just a warning - it's not confirmed. (PR #165
    Open source →
  8. v0.6.1-0.20240121200932-09cafca21ca6 21 Jan 2024 pre-release

    Nothing published for this version

  9. v0.6.1-0.20240107170123-128881dec547 07 Jan 2024 pre-release

    Nothing published for this version

  10. v0.6.1-0.20240102184933-0e6beda452a5 02 Jan 2024 pre-release

    Nothing published for this version

  11. v0.6.1-0.20231205181559-be99209ab4a2 05 Dec 2023 pre-release

    Nothing published for this version

  12. v0.6.1-0.20231203182903-9ff6a17eeac1 03 Dec 2023 pre-release

    Nothing published for this version

  13. v0.6.1-0.20231104215801-087cefb6a464 04 Nov 2023 pre-release

    Nothing published for this version

  14. v0.6.1-0.20220828183645-93d491e1a0c9 28 Aug 2022 pre-release

    Nothing published for this version

  15. v0.6.1-0.20220529135155-93b870d5bd6a 29 May 2022 pre-release

    Nothing published for this version

  16. v0.6.1-0.20200129172358-d65f8ee35eb0 29 Jan 2020 pre-release

    Nothing published for this version

  17. v0.6.1-0.20191013192605-5037d2512e8f 13 Oct 2019 pre-release

    Nothing published for this version

  18. v0.6.0 13 Oct 2019
    Release notes
    • Added support for Go modules (issue #81)
      • All gokv.Store implementations are now separate Go modules
    • Added gokv.Store implementations:
      • Package hazelcast - A gokv.Store implementation for Hazelcast (issue #75)
    • Fixed: Compile error in badgerdb after a breaking change in BadgerDB 1.6.0
    Open source →
    Release notes

    v0.6.0 (2019-10-13)

    Compare

    Choose a tag to compare

    Open source →
  19. v0.5.1-0.20191013171515-a4a3fa1d6c71 13 Oct 2019 pre-release

    Nothing published for this version

  20. v0.5.1-0.20191011213304-eb77f15b9c61 11 Oct 2019 pre-release

    Nothing published for this version

  21. v0.5.1-0.20191002230130-541339c35402 02 Oct 2019 pre-release

    Nothing published for this version

  22. v0.5.1-0.20191001201555-5ac9a20de634 01 Oct 2019 pre-release

    Nothing published for this version

  23. v0.5.1-0.20190929161952-f31a8dbcad2a 29 Sep 2019 pre-release

    Nothing published for this version

  24. v0.5.1-0.20190929161440-07d380f5709c 29 Sep 2019 pre-release

    Nothing published for this version

  25. v0.5.1-0.20190929160129-0d7f73783714 29 Sep 2019 pre-release

    Nothing published for this version

  26. v0.5.1-0.20190928144926-0fa470d8f0d4 28 Sep 2019 pre-release

    Nothing published for this version

  27. v0.5.0 12 Jan 2019
    Release notes
    • Added: Package encoding - An abstraction and wrapper for the core functionality of packages like encoding/json and encoding/gob (issue #47)
    • Added: Package sql - It contains shared code for SQL implementations. mysql and postgres already use it and if you want to create your own SQL implementation you can use it as well. (Useful for issue #57.)
    • Added gokv.Store implementations:

    Breaking changes

    • The MarshalFormat enums were removed from all packages that contained gokv.Store implementations. Instead the shared package encoding was introduced (required for issue #47)
    Open source →
    Release notes

    v0.5.0 (2019-01-12)

    Compare

    Choose a tag to compare

    Open source →
  28. v0.4.0 02 Dec 2018
    Release notes
    • Added: Method Close() error (issue #36)
    • Added gokv.Store implementations:
      • Package mongodb - A gokv.Store implementation for MongoDB (issue #27)
      • Package dynamodb - A gokv.Store implementation for Amazon DynamoDB (issue #28)
      • Package memcached - A gokv.Store implementation for Memcached (issue #31)
      • Package mysql - A gokv.Store implementation for MySQL (issue #32)
    • Added: The factory function redis.NewClient() now checks if the connection to the Redis server works and otherwise returns an error.
    • Added: The test package now has the function func TestConcurrentInteractions(t *testing.T, goroutineCount int, store gokv.Store) that you can use to test your gokv.Store implementation with concurrent interactions.
    • Improved: The etcd.Client timeout implementation was improved.
    • Fixed: The Get() method of the bbolt store ignored errors if they occurred during the retrieval of the value
    • Fixed: Spelling in error message when using the etcd implementation and the etcd server is unreachable

    Breaking changes

    • The added Close() error method (see above) means that previous implementations of gokv.Store are not compatible with the interface anymore.
    • Renamed bolt package to bbolt to reflect the fact that the maintained fork is used. Also changed all other occurrences of "bolt" (e.g. in GoDoc comments etc.).
    • Due to the above mentioned addition to the Redis client factory function, the function signature changed from func NewClient(options Options) Client to func NewClient(options Options) (Client, error).
    Open source →
    Release notes

    v0.4.0 (2018-12-02)

    Compare

    Choose a tag to compare

    Open source →
  29. v0.3.0 17 Nov 2018
    Release notes
    • Added: Method Delete(string) error (issue #8)
    • Added: All gokv.Store implementations in this package now also support gob as marshal format as alternative to JSON (issue #22)
      • Part of this addition are a new field in the existing Options structs, called MarshalFormat, as well as the related MarshalFormat enum (custom type + related const values) in each implementation package
    • Added gokv.Store implementations:
      • Package badgerdb - A gokv.Store implementation for BadgerDB (issue #16)
      • Package consul - A gokv.Store implementation for Consul (issue #18)
      • Package etcd - A gokv.Store implementation for etcd (issue #24)

    Breaking changes

    • The added Delete(string) error method (see above) means that previous implementations of gokv.Store are not compatible with the interface anymore.
    • Changed: The NewStore() function in gomap and syncmap now has an Option parameter. Required for issue #22.
    • Changed: Passing an empty string as key to Set(), Get() or Delete() now results in an error
    • Changed: Passing nil as value parameter to Set() or as pointer to Get() now results in an error. This change leads to a consistent behaviour across the different marshal formats (otherwise for example encoding/json marshals nil to null while encoding/gob returns an error).
    Open source →
    Release notes

    v0.3.0 (2018-11-17)

    Compare

    Choose a tag to compare

    Open source →
  30. v0.2.0 05 Nov 2018
    Release notes
    • Added gokv.Store implementation:
      • Package gomap - A gokv.Store implementation for a plain Go map with a sync.RWMutex for concurrent access (issue #11)
    • Improved: Every gokv.Store implementation resides in its own package now, so when downloading the package of an implementation, for example with go get github.com/philippgille/gokv/redis, only the actually required dependencies are downloaded and compiled, making the process much faster. This is especially useful for example when creating Docker images, where in many cases (depending on the Dockerfile) the download and compilation are repeated for each build. (Issue #2)
    • Improved: The performance of bolt.Store should be higher, because unnecessary manual locking was removed. (Issue #1)
    • Fixed: The gokv.Store implementation for bbolt / Bolt DB used data from within a Bolt transaction outside of it, without copying the value, which can lead to errors (see here) (issue #13)

    Breaking changes

    • All gokv.Store implementations were moved into their own packages and the structs that implement the interface were renamed to avoid unidiomatic "stuttering".
    Open source →
    Release notes

    v0.2.0 (2018-11-05)

    Compare

    Choose a tag to compare

    Open source →
  31. v0.1.0 13 Oct 2018
    Release notes

    Initial release with code from philippgille/ln-paywall:78fd1dfbf10f549a22f4f30ac7f68c2a2735e989 with only a few changes like a different default path and a bucket name as additional option for the Bolt DB implementation.

    Features:

    • Interface with Set(string, interface{}) error and Get(string, interface{}) (bool, error)
    • Implementations for:
      • bbolt (formerly known as Bolt / Bolt DB)
      • Go map (sync.Map)
      • Redis
    Open source →
    Release notes

    v0.1.0 (2018-10-14)

    Compare

    Choose a tag to compare

    Open source →
  32. v0.0.0-20250629173028-c96b6b6bc373 29 Jun 2025 pre-release

    Nothing published for this version

  33. v0.0.0-20250627195511-62058bc225ad 27 Jun 2025 pre-release

    Nothing published for this version

  34. v0.0.0-20250627120753-64606da11bfb 27 Jun 2025 pre-release

    Nothing published for this version

  35. v0.0.0-20250627113229-1d71df2f2a1d 27 Jun 2025 pre-release

    Nothing published for this version

  36. v0.0.0-20250627110447-ba4bb98f8607 27 Jun 2025 pre-release

    Nothing published for this version

  37. v0.0.0-20250627094632-24142fe2ecd2 27 Jun 2025 pre-release

    Nothing published for this version

  38. v0.0.0-20240602190052-c954c5435f35 02 Jun 2024 pre-release

    Nothing published for this version

  39. v0.0.0-20240128200346-0a05f2ed73e8 28 Jan 2024 pre-release

    Nothing published for this version

  40. v0.0.0-20240107170123-128881dec547 07 Jan 2024 pre-release

    Nothing published for this version

  41. v0.0.0-20231205181559-be99209ab4a2 05 Dec 2023 pre-release

    Nothing published for this version

  42. v0.0.0-20191013192605-5037d2512e8f 13 Oct 2019 pre-release

    Nothing published for this version

  43. v0.0.0-20191013173411-c8ef9ba45956 13 Oct 2019 pre-release

    Nothing published for this version

  44. v0.0.0-20191013171515-a4a3fa1d6c71 13 Oct 2019 pre-release

    Nothing published for this version

  45. v0.0.0-20191011213304-eb77f15b9c61 11 Oct 2019 pre-release

    Nothing published for this version

  46. v0.0.0-20191002230130-541339c35402 02 Oct 2019 pre-release

    Nothing published for this version

  47. v0.0.0-20191001201555-5ac9a20de634 01 Oct 2019 pre-release

    Nothing published for this version

  48. v0.0.0-20190929161952-f31a8dbcad2a 29 Sep 2019 pre-release

    Nothing published for this version

  49. v0.0.0-20190929161440-07d380f5709c 29 Sep 2019 pre-release

    Nothing published for this version

  50. v0.0.0-20190928144926-0fa470d8f0d4 28 Sep 2019 pre-release

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive