uuid

A UUID package for Go

MIT License

Stars
1.6K
Committers
50

Bot releases are hidden (Show)

uuid - v5.3.0 Latest Release

Published by cameracker 2 months ago

Summary

In this release, we updated the package to participate in OpenSSF Scorecard and tuned several development workflows and added some fuzz tests. Additionally, We added AtTime generators for V1, V6, and V7 so that users may generate UUIDs from time stamps.

NOTE Technically, the additional of the AtTime generators is a breaking change to the Generator interface. We decided to go with a minor update because of the unlikelihood of this interface being implemented by a consumer, and to reduce the impact of releasing a major version for this feature.
 

What's Changed

New Contributors

Full Changelog: https://github.com/gofrs/uuid/compare/v5.2.0...v5.3.0

uuid - v5.2.0

Published by cameracker 5 months ago

This minor release updates the UUID v6 and v7 features of package to be complaint to draft RFC-9562, which replaces the previous family of uuid drafts. Additionally, it adds more specific error types, and tunes up Github Actions safety practices

What's Changed

New Contributors

Full Changelog: https://github.com/gofrs/uuid/compare/v5.1.0...v5.2.0

uuid - v5.1.0

Published by cameracker 6 months ago

This release adds a new constant for the Max UUID. Max UUID defined in draft-ietf-uuidrev-rfc4122bis-14 as having maximum values for all bits.

NOTE: Because this feature is part of a draft, it is subject to removal on a minor version of this package if it is removed from a later revision of the RFC.

  • Added Max UUID, contributed by @james-lawrence

Full Changelog: v5.1.0...v5.0.1

uuid - v5.0.1

Published by cameracker 6 months ago

  • Fixed an issue with TimestampFromV7 reporting the wrong UUID version in the error message, contributed by @jaredLunde and @PatrLind

Full Changelog: v5.0.1...v5.0.0

uuid - v5.0.0

Published by cameracker over 1 year ago

This is a major release that changes no behavior of the package since the previous release (v4.4.0) and only incorporates gomodules.

  • Made this package compatible with gomodules #116 , contributed by @cameracker

Full Changelog: v4.4.0...v5.0.0

uuid - v4.4.0

Published by cameracker over 1 year ago

  • Improved performance and reduce memory allocations for most UUID methods, contributed by @charlievieth (#96)
  • Added a generator constructor that accepts options, contributed by @mlesar, completed by @LeonanCarvalho (#111)
  • UUID now satisfies driver.Valuer and sql.Scanner interfaces, contributed by @charlievieth (#113)
  • Update UUIDv7 to conform with RFC Draft Rev 4, contributed by @bgadrian (#112)

NOTE: This release uses Time.UnixMilli() internally which is only available on Go 1.17 or later.

Full Changelog: v4.3.1...v4.4.0

uuid - v4.3.1

Published by cameracker almost 2 years ago

  • Update UUIDv7 to use unix millisecond calculation that is friendly to legacy go versions by @convto
    Full Changelog: v4.3.0...v4.3.1
uuid - Update to UUIDv7

Published by cameracker about 2 years ago

  • Update UUIDv7 to conform with RFC Draft Rev 3 by @convto (Breaking change to experimental feature)
  • Update unit test coverage to be 100% by @theckman, and @cameracker

Full Changelog: v4.2.0...v4.3.0

uuid - v4.2.0 Latest

Published by cameracker almost 3 years ago

Changes

Addition of IsNil method by @jordan-chalupka in #95

Full Changelog: v4.10...v4.2.0

uuid - v4.1.0

Published by theckman about 3 years ago

Changes

Full Changelog: https://github.com/gofrs/uuid/compare/v4.0.0...v4.1.0

uuid - 4.0.0

Published by cameracker almost 4 years ago

  • This release removes support for UUIDV2. UUID V2 is underspecified and unsafe for users expecting uniqueness - the time dependence frequently produces duplicate identifiers and V2 is dependent on *nix only time features. UUID V2 is especially weak on Windows operating systems.

We recommend that all users of the library either upgrade to this version, or at least consider no longer relying on UUID V2 in their applications.

uuid - 3.4.0

Published by cameracker almost 4 years ago

Note: This release is identical to v3.3.0 and was created by mistake. It is safe to use either.

  • the UUID type now satisfied fmt.Formatter; see the .Format() method
    docs for more info. Contributed by Dylan Bourque (@dylan-bourque) in #72.
  • Codec related error messages have been adjusted to improve clarity and consistency with error message standards. Contributed by Josh Leverette (@coder543 ) in #78.
uuid - 3.3.0

Published by theckman over 4 years ago

  • the UUID type now satisfied fmt.Formatter; see the .Format() method
    docs for more info. Contributed by Dylan Bourque (@dylan-bourque) in #72.
  • Codec related error messages have been adjusted to improve clarity and consistency with error message standards. Contributed by Josh Leverette (@coder543 ) in #78.
uuid - 3.2.0

Published by theckman almost 6 years ago

  • Remove support for the experimental Go Modules feature due to issues supporting
    both dep and modules, amongst other concerns.

Please see #61, #66, and #67 for more info.

uuid - v3.1.2

Published by acln0 almost 6 years ago

This release improves the interoperability of package uuid with
ORMs such as gorm, per PR #58. Thanks to Jun Jie Nan (@nanjj) for
the contribution.

uuid - 3.1.1: UUIDs for Workgroups

Published by theckman about 6 years ago

Added go.mod file.

uuid - 3.1.0

Published by theckman about 6 years ago

This release includes new functionality (PR #31) to help consumers extract a
time.Time value out of a Version 1 UUID.

UUIDs have their own internal timestamp, which is a counter of 100ns increments
since the start of the Gregorian Calendar (00:00:00 UTC on 15 Oct, 1582). To
represent that a new Timestamp type was added, with a Time() method used to
convert the timestamp value to a time.Time value.

To extract the timestamp from a Version 1 UUID, a new package
function (TimestampFromV1) was added to extract a Timestamp out of a UUID.
If it's not a V1 UUID it returns an error.

Big thanks to Ron Kuris (@rkuris) for this contribution!

uuid - 3.0.0

Published by theckman about 6 years ago

v3.0.0 denotes the first major change by The Gofrs, and encompasses feature
requests / PRs that had been opened against the original project. This version
includes the following breaking changes:

  • update the sql.NullUUID type to support both the json.Marshaler and
    json.Unmarshaler interfaces, which I'll provide more details on later. (#38)
  • remove the Equal function from the package, as the UUID type is an array
    type and so you can use == directly for comparisons. (#36 #39)

This version also exposes the internal UUID generator, with constructors, so
that consumers can provide their own HWAddrFunc to get the hardware address of
the node. This can be used by consumers who want to randomize the MAC address in
a V1 UUID. (#42)

In regards to the JSON change, the sql.NullUUID type is one that's used with
the database/sql package to support columns that can contain UUIDs or a NULL
value. This means it's a struct with a UUID and Valid field, so previously a
sql.NullUUID would marshal to JSON like so:

{
  "uuid": {
    "uuid": "3bdef553-9b6a-4620-8a5f-b94bf22a2520",
    "valid": true
  }
}

By implementing the right interfaces from the JSON package, it'll now marshal
like so:

{
  "uuid": "3bdef553-9b6a-4620-8a5f-b94bf22a2520"
}
uuid - 2.1.0

Published by theckman about 6 years ago

Version 2.1.0 is functionally equivalent to 2.0.1. It introduces a documentation
change to indicate that the package's Equal function is deprecated in favor of
just comparing two UUID values to one another using ==. This change was made
in #36.

We plan on removing this function in v3.0.0.

uuid - 2.0.1

Published by theckman over 6 years ago

This change includes two small fixes to the Equal package function both done
within #34:

  • update the documentation / function arguments to be more clear
  • compare the UUID values to each other directly, instead of converting to
    slices and then comparing using bytes.Equal