ArtifactoryでCargoリポジトリを使用する方法

如何在工厂中使用货物仓库

锈はStackoverflowが実施した最も好きなプログラミング言語の調査で5年連続で首位を獲得しました。C / c++の次のステップとして注目されているこの言語は組込み機器の開発者や物联网向けの堅牢なシステムによって急速に普及しています。

JFrogでは锈の開発者を歓迎し,堅牢なバイナリ管理と継続的インテグレーションにどのように貢献するかを紹介したいと思います。私たちは锈プログラミング言語のパッケージ管理システムである货物をArtifactoryでサポートするリポジトリに加えました。

86%以上の開発者が熱狂的に支持したRustの特徴とは?また,ソフトウェア開発のライフサイクルを加速するために,Artifactoryの货物リポジトリをどのように利用できるのでしょうか吗?

なぜRustなのか?

Mozilla研究は锈を”スピード,メモリの安全性,並列性に重点を置いたシステムプログラミング言語”と表現しています。これらの重要な機能はそのビジョンを支えるものです。

  • 自動ガベ,ジコレクション- RustはRAII(资源获取初始化)を強制することでリソースリークバグを防ぎ,リソースを所有するオブジェクトがスコープ外に出たときには必ずリソースを解放します。
  • 強力な並列処理のサポ,ト——铁锈は並列処理するマルチスレッドプログラミングを安全で効率的に扱えるように設計されています。強力な型,发送と同步の特性は同期したスレッドセーフな動作を保証し,標準的なスレッドライブラリは锈コードの並列処理を可能にしています。
  • セ,フティチェック——铁锈のコンパイラはメモリーセーフティーなどのチェックを行い,クリーンで堅牢なコードを実現します。
  • 再利用可能パッケ,ジ——铁锈は開発者が再利用可能なコードユニットをプロジェクト内でプライベートに共有したり,他の人とパブリックに共有することもできるクレートを作成できる強力なシステムを提供しています。
  • 依存関係の管理- - - - - -铁锈用の货物パッケ,ジマネ,ジャはパッケジの依存関係をダウンロドしてコンパルする機能を備えています。

これらの機能は他の人気のある構文機能(複雑なデ,タ型,可变/不可变の借用,回復可能/回復不可能なエラ処理など)と合わせて開発者には喜ばしいことです。

リモト货物リポジトリ

フレンドリで活発なRustコミュニティはオプンソスのパッケジを配布するためにcrates.ioパッケ,ジレジストリを管理しています。锈プログラマはアプリケーションのコアサービスの大半は,このパブリックライブラリを利用することになります。

チーム間での锈ビルドのスピードと一貫性を担保するために,Artifactoryのリモートリポジトリを使用してcrates.ioをプロキシします。

ArtifactoryのリモートリポジトリはリモートURLで管理されているリポジトリやレジストリのキャッシングプロキシとして機能します。リモトリポジトリのコンテンとネティブソスの間に違いはありません。

このDevOpsベストプラクティスを実践することで,あなたとチ,ムは利益を得ることができます。

  • スピ,ドのためのロ,カル化——プロキシは頻繁に使用するパッケージをクラウドでもオンプレミスでも,ビルドが行われる環境に保持することで,ネットワークのレイテンシーを最小限に抑えます。
  • 接続保護——crates.ioプロキシは接続不良や中断によりcrates.ioサーバが利用できない場合やリモートサーバー自体に障害が発生した場合でも利用可能です。
  • 不変性の確保——いったんパッケージのバージョンがプロキシの登録後,それは不変で,それを使用する全てのビルドで同じものになります。これによって,パブリックリポジトリへの不適切な強制プッシュによってビルドに何かが入り込むことを防ぎます。

crates.ioのリモ,トリポジトリプロキシを簡単に設定できます。

  1. Artifactoryで新規の货物リモ,トリポジトリを作成
    在Artifactory中创建一个新的Cargo远程存储库
  2. リモ,トリポジトリに名前を付け,crates.ioのURLを割り当て
    命名远程存储库并为crate .io分配URL
  3. アプリケ,ションパッケ,ジのconfig.tomlマニフェストファイルでcrates.ioの代わりにArtifactoryのリモートリポジトリにリダイレクトするように[注册]のデフォルトを設定します。
    (手順は)Artifactブラウザの“撮合我”を参照してください)


    リモートリポジトリプロキシは読み取り専用ですが,ビルドのためにオープンソースの依存関係を取り込むという日常的な作業のほとんどにとっては当然のことです.crates.ioに公開する必要がある場合は(注册中心)で名前を定義し,公開する際に——注册表オプションで使用することができます。(マニフェスト内のpackage.publishキでレジストリ名を指定することでレジストリへの公開が可能になります)

    #使artifactory为默认注册表,并保存传递的——registry参数[registry] default = "art-crates-remote" [registry]# Artifactory的远程存储库代理(只读)Art-crates-remote index = {index = "https://artprod.mycompany/artifactory/git/cargo-remote。git”}#可选,使用——registry发布到crate .iocrate -io = {index = " https://github.com/rust-lang/crates.io-index "}

ロカル货物リポジトリ

チームや部門内でのみ作成,共有するクレートについてはプライベート货物レジストリを維持する必要があります。Artifactoryではローカル货物リポジトリで必要な数のレジストリを作成することができます。

以下は”プロジェクトX”に取り組んでいるチームがローカル货物リポジトリをセットアップして使用する方法です。

  1. Artifactoryに“cargo-local-projectxという名前のローカル货物リポジトリを作成する
  2. config.tomlファ▪▪ルでロ▪▪カルリポジトリ用の注册表定義を構成し,package.publishキ,を設定後,そのレジストリへの公開を許可します
    [registry] projectx = {index = "https://artprod.mycompany/artifactory/git/cargo-local_projectx. "Git "} [package] publish = " projectx "
  3. 货物发布でArtifactoryのロ,カルリポジトリにクレ,トを公開する場合は——注册表オプションを指定します
    $ crate publish—注册表“projectx”
  4. ローカルリポジトリにあるクレートをProjectXアプリケーションのソースコードに依存して使用するには,版本と一緒に注册表を指定します
    [依赖项]some-crate ={版本= "1.0",注册表= "projectx"}

まとめ

Artifactoryの货物用リモートリポジトリとローカルリポジトリの両方を使用することで,SDLCでベストプラクティスを実践し,DevOpsの成功を実現できます。すべての锈開発者チームの依存関係やパッケージの一貫性を货物のネイティブサポートで担保できます。また,Artifactoryの詳細なパ,ミッションにより,チ,ム間のアクセスを管理できます。

ArtifactoryのCargoリポジトリをご自身でご確認ください。JFrogクラウドの無料版で,これらの方法をご活用してみませんか。

関連リソ,ス: