Releases: gofrs/uuid
4.0.0
- 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.
3.3.0
- 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.
3.4.0
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.
3.2.0
v3.1.2
3.1.1: UUIDs for Workgroups
Added go.mod
file.
3.1.0
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!
3.0.0
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 thejson.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"
}