UUID package coming to Go standard library

(github.com)

83 points | by soypat 3 hours ago

5 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 45 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 52 minutes ago
        The RFC isn’t changing, is it?
        • JimDabell 26 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.

          • 0x696C6961 0 minutes ago
            Alternative take: don't put draft RFCs into prod
  • vzaliva 6 minutes ago
    A slow day in Go-news land? :)

    It is heathwarming to see such mundane small tech bit making front page of HN when elsewhere is is debated whether programming as profession is dead or more broadly if AI will be enslaving humanity in the next decade. :)

  • 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 22 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 1 hour ago
        It would appear that person and OP are one in the same.
  • cookiengineer 22 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 17 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.