UUID package coming to Go standard library

(github.com)

80 points | by soypat 3 hours ago

4 comments

  • kayson 2 hours ago
    Odd to me that the focus seems to be on the inactivity of Google's package when https://github.com/gofrs/uuid not only conforms to the newer standard but is actively maintained.
    • 0x696C6961 38 minutes ago
      I get a kick out of publishing libs with no external deps. Regardless of reasoning, this change makes that easier.
    • da_chicken 1 hour ago
      While the uuid package is actively maintained, it hasn't had a release since 2024. Indeed, there's an open issue from June 2025 asking about it: https://github.com/google/uuid/issues/194
      • rafram 45 minutes ago
        The RFC isn’t changing, is it?
        • JimDabell 20 minutes ago
          I’m not sure of the state of that particular library, but yes, the RFC has changed significantly. For instance, the UUIDv7 format changed from the earlier draft RFC resulting in incompatibilities.

          This is an example of an unmaintained UUID library in a similar situation that is currently causing incompatibilities because they implemented the draft spec. and didn’t update when the RFC changed:

          https://github.com/stevesimmons/uuid7/issues/1

          Any Python developer using the uuid7 library is getting something that is incompatible with the UUIDv7 specification and other UUIDv7 implementations as a result. Developers who use the stdlib uuid package in Python 3.14+ and uuid7 as a fallback in older versions are getting different, incompatible behaviour depending upon which version of Python they are running.

          This can manifest itself as a developer using UUIDv7 for its time-ordered property, deploying with Python <=3.13, upgrading to Python 3.14+ and discovering that all their data created with Python 3.13 sorts incorrectly when mixed with data created with Python 3.14+.

          A UUID library that is not receiving updates is quite possibly badly broken and definitely warrants suspicion and closer inspection.

  • therealdrag0 1 hour ago
    Golang lack of support for basic stuff like this is quite annoying.
  • waynesonfire 1 hour ago
    what a bunch of drama in the comments.
    • azinman2 1 hour ago
      It’s kind of ridiculous to argue against UUID being part of the standard package for a language largely aimed at servers. At that point why even have any crypto functions or any of the bigger stuff it already has if the argument is 3rd party libs are enough?
      • vips7L 15 minutes ago
        People are weird. A few days ago someone on /r/Java was arguing that a basic JSON parser shouldn’t be in the standard library.
      • tptacek 1 hour ago
        UUIDv7 didn't mature until long after the Go standard library was mostly settled. By that point, there was already an idiomatic 3p dep for UUIDs (the Google package), and as you can see from the thread, there were arguments in favor of keeping it 3p (it can be updated on an arbitrary cadence, unlike the stdlib).
    • tptacek 1 hour ago
    • rednafi 1 hour ago
      Basically one guy having a fit when people disagreed with him.
      • fractorial 54 minutes ago
        It would appear that person and OP are one in the same.
  • cookiengineer 15 minutes ago
    Every time I read these types of Go issues, I think I am reading a writeup of a highschool debate club. It's like there is debate just for the sake of debate.

    I understand the defensiveness about implementing new features, and I understand the rationale to keep the core as small as possible. But come on, it's not like UUID is a new thing. As the opener already pointed out, UUID is essential in pretty much all languages for interoperability so it makes sense to have that in the standard language.

    Anyways, I'm just happy we'll get generic methods after 10 years of debates, I suppose. Maybe we'll get an export keyword before another 10, too. Then CGo will finally be usable outside a single package without those overlapping autogenerated symbols...

    • pjmlp 10 minutes ago
      Which is why I changed from being on Gonuts during pre-1.0 days to only touch Go if I really have to.

      However I would still advocate for it over C in scenarios easily covered by TinyGo and TamaGo.