世界を動かす技術を、日本語で。

UUIDパッケージがGo標準ライブラリに追加される

2026年3月7日原文(github.com)

概要

  • UUID 生成・解析パッケージの標準ライブラリ追加提案
  • バージョン3, 4, 5 のUUID対応要望
  • github.com/google/uuid の広範な利用実態
  • 他言語(C#, Java, JavaScript, Python, Ruby)との比較
  • Go標準ライブラリの現状への問題提起

Go標準ライブラリへのUUIDパッケージ追加提案

  • サーバーやDB関連の Goプログラム でUUID生成・解析が頻繁に必要
  • github.com/google/uuid が事実上のデファクトスタンダード
  • GitHub検索でも多くのプロジェクトでこのパッケージが利用されている現状
  • UUIDは 国際標準規格 (RFC 4122)に準拠している
  • github.com/google/uuid のインターフェースは長期間安定している
  • 標準ライブラリにUUID対応がないのはGoの 例外的状況

他言語標準ライブラリとの比較

  • C# ではSystem.GuidとしてUUID(GUID)サポート
  • Java ではjava.util.UUIDクラスが標準で利用可能
  • JavaScript (特にNode.js)や PythonRuby もUUID生成・解析を標準搭載
  • これらの言語では 追加インストール不要 でUUID利用が可能
  • Goのみが標準ライブラリでUUIDをサポートしていない現状

標準ライブラリ追加の意義

  • サードパーティ依存削減による セキュリティ向上
  • コードの 可搬性・保守性 の向上
  • UUIDの標準的な利用促進 によるエコシステムの強化
  • 他言語と同様の 開発体験の提供

まとめ

  • Go標準ライブラリにUUID生成・解析機能を追加することで、 開発効率と安全性 の向上
  • 他言語と同等の 利便性確保
  • バージョン3, 4, 5 への公式対応による互換性維持

Hackerたちの意見

Googleのパッケージの非活動に焦点が当たってるのが不思議なんだけど、https://github.com/gofrs/uuidは新しい標準に準拠してるし、ちゃんとメンテナンスもされてるのにね。

uuidパッケージはちゃんとメンテされてるけど、2024年以降リリースがないんだよね。実際、2025年6月にはそれについてのオープンな問題も出てるよね。: https://github.com/google/uuid/issues/194

外部依存がないライブラリを公開するのが楽しいんだよね。理由はどうあれ、この変更でそれがもっと簡単になるよ。

この提案は3年前のものだよ。

Golangがこういう基本的なことにサポートがないのは、ほんとイライラするわ。

「バッテリー同梱」っていう考え方がこの20年でかなり変わったよね。Goの quirks のほとんどと同じように、Googleは別に必要なかったんじゃないかな。

次はJavascriptやってみて。

標準ライブラリでこういう決定がもっと固定されてる言語って何だと思う?Ruby、Python、Rust、Javascriptじゃないのは分かってるけど、Javaかな?Elixirがこれをうまくやってるとは思えないんだけど。

https://github.com/rs/xid

他にどんな基本的なことを考えてるの?

UUIDって、16バイトの配列か64ビットの整数が2つ並んでるだけだよ。UUIDv4を生成するのも数行のコードでできるし、そんな大したことじゃないと思うけど。

Goはどの言語よりも標準ライブラリが優れてると思う。日常のプログラミングで最も使われる言語だと言っても過言じゃない。無駄なことはやめて。

Hacker Newsで議論の続きを見る