Skip to content

Goモジュール名やパッケージ名の規則

公式な資料は見当たらなかったけど、実装は x/mod 以下にあって、これがGo本体からインポートされている。

これによると、次の通り。

モジュール名は、最初のドメイン名と以降のパス名の2つで構成されている。ドメイン名部分で利用できる文字種は以下の通り。

  • 数字(0〜9)
  • 英字小文字(a〜z)
  • 一部の記号(-.)

パス名の部分で利用できる文字種は

  • 数字(0〜9)
  • 英字大文字(A〜Z)
  • 英字小文字(a〜z)
  • 一部の記号(-, ., _, ~)

ただし、モジュール名は - から始めることはできないし、同様にモジュール名は / で終わることもできない。また、ドメイン名には必ず . が必要。

モジュール名を構成する / で区切られた各要素について、以下に一致する要素は禁止。

  • 空文字列
  • 名前が . で開始される
  • 名前が . で終わる
  • すべての文字が . で構成される
  • 末尾が ~1 などチルダと数字の組み合わせ

従って、次のようなモジュール名はエラーになる。

  • -example.com/pkg- で開始している
  • example//option … 空の要素がある
  • example/ … 末尾が / で終わっている
  • mod/../test … 途中に . だけの要素がある

基本的にはモジュール名と同様だが、以下の違いがある。

  • モジュール名に使える文字に加えて + も許される
  • 要素の先頭に . があってもいい