2023/11/26
はじめに
ついに、自作クレートをcrates.ioで公開してみました。
変更点
マニフェストを更新。
一般的にパッケージを公開する時に必要なことなのですんなりと理解できた。
これは、プロジェクトのCargo.toml
にいくつかの項目を追記するとよい。
package
テーブルの中に以下のように項目を記載する。
Cargo.toml
[package]
name = "<crate-name>"
version = "0.1.6"
edition = "2021"
authors = ["<your-name>"]
repository = "https://github.com/<your-name>/<your-repo>"
license = "MIT"
license-file = "LICENSE"
description = "This Crate is ..."
exclude = [".github", ".gitignore", "tests"]
publish方法
まずはターミナルでcrates.ioへアクセスできるようにトークンを取得。
可能な限り小さい範囲の権限を付与したTokenを利用することが望ましい。
$ cargo login
please paste the token found on https://crates.io/me below
<paste-your-token>
publishする。
$ cargo publish
公開されるファイルを一覧するには以下のコマンド。
$ cargo package --list
各設定の説明
authors
著者
repository
リポジトリのURL
license
ライセンス。 これを書かないと利用者はどう使っていいのかわからないので必要。
license-file
とどちらかでいいらしい。
license-file
ライセンスファイル。license
とどちらかでいいらしい。
description
クレートの説明を書く
exclude
レジストリに含ませないファイルやディレクトリの設定。
なくても困ることはないと思うが、.github
, .gitignore
くらいは除外するのが思いやりかなと思って追加した。Testも必要によっては含めてもいいと考えられる。
ついでに
GitHub Actionsで自動化しておくと非常に便利。→こちら
Actionsに載せるときは、よりTokenの扱いに注意!!
おわりに
npmとかなり雰囲気が似ていて、とっつきやすかったです。
近代的な言語はパッケージマネージャがきちんと整備されており、パッケージングや公開も楽なので便利ですよね!