マイクロソフトによるAzure SDK for Rustの初回ベータ版をリリースを受け、Rustアプリケーション開発者のAzureサービス利用が可能になった。今回の初回リリースでは、Identity、Key Vault(シークレットおよびキー)、Event Hubs、Cosmos DBといった重要なコンポーネントライブラリが提供されている。
今回の発表から、マイクロソフトが、自社内外にわたる幅広い開発者エコシステムでのプログラミング言語Rustの重要性や採用の高まりを認識していることがうかがえる。Rustは、パフォーマンスや信頼性の高さ、メモリ安全性という特徴で人気を集めており、システムプログラミングや高性能アプリケーションに最適な開発言語となっている。Rustの型システムや所有権モデルの堅牢さが一般的なプログラミングエラーの防止につながるほか、コードの安全性や一貫性の向上にも貢献している。また同時に、Rustのモダンな構文やツーリングは、デベロッパーエクスペリエンスにも恩恵をもたらしている。
ベータ版SDKでは、Rustのパッケージ管理システム(cargo)とコーディング規約との統合向けに設計されたライブラリが提供されている。このライブラリにはRustエコシステムにおける「クレート」も含まれており、cargo addコマンドを使用したRustプロジェクトの依存関係としての追加も可能だ。
以下は、IdentityとKey Vault Secretsライブラリを使用する際のコマンド実行の一例である。
cargo add azure_identity azure_security_keyvault_secrets tokio --features tokio/full
次の段階で、Azure SDKクレートから必要なモジュールのインポートが可能だ。以下が、DefaultAzureCredentialで新しいSecretClientを作成するコードである。
#[tokio::main]async fn main() -> Result<(), Box<dyn std::error::Error>> { // Create a credential using DefaultAzureCredential let credential = DefaultAzureCredential::new()?; // Initialize the SecretClient with the Key Vault URL and credential let client = SecretClient::new( "https://your-key-vault-name.vault.azure.net/," credential.clone(), None, )?; // Additional code will go here... Ok(())}
Azure SDK for Rustのリリース後、MicrosoftのCosmos DBチームからAzure Cosmos DB Rust SDKが発表された。マイクロソフトのCosmos DBプロダクトマネージャーであるTheo van Kraay氏は、次のように記している。
エコシステムの拡張やWebAssemblyのサポート実装を受け、Rustがパフォーマンスクリティカルなワークロード、クラウドサービス、Azure Cosmos DBのような分散システムにとって、ますます使い勝手の良い言語になってきています。
今回のベータ版リリースがRust Cloud SDK分野での初の公式参入となるマイクロソフトに対し、Amazon Web Services(AWS)からは既に構築の整った公式AWS SDK for Rustがリリースされている。 AWS SDK for RustからはAWSサービスとの互換性を持った各種クレートが網羅的に提供されており、膨大な数のAWSサービスとの相互作用を利用したアプリケーション構築が可能になっている。
マイクロソフトは、将来的にAzure SDK for Rustを拡張し、Azureサービスにおけるサポート対象の拡大や既存のベータライブラリの改善を計画している。安定性の高いライブラリや堅牢でユーザーフレンドリーなエクスペリエンスの提供を目標としている。今後の改善点としては、パイプライン処理全体のバッファリングによる一貫したポリシー(再試行ポリシーなど)適用の確立や配列の多くを空のVecにデシリアライズするコード簡素化が実装される見込みだ。
最後に、Azure SDK for Rustの使用に興味があれば、project's GitHub repositoryでドキュメント、コードサンプル、インストール手順書の詳細確認を。また、releases from the SDKでSDKの新規実装内容も確認可能である。