Skip to main content

create-crate

Create a new Azure SDK crate from a TypeSpec specification.

Informações da origem

Repositório
Azure/azure-sdk-for-rust
Última atividade na origem
31 de agosto de 2026 às 16:53
Idioma detectado do SKILL.md
inglês
Estrelas
885
Forks
375

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
create-crate
description
Create a new Azure SDK crate from a TypeSpec specification.
# Creating a New Crate All new service crates must be generated from TypeSpec specifications in [Azure/azure-rest-api-specs](https://github.com/Azure/azure-rest-api-specs). Do not hand-write client libraries from scratch. 1. **Install tsp-client** - Use the repository-pinned CLI; do not invoke a globally installed binary: ```bash _TspClientDir="$(pwd)/eng/common/tsp-client" npm ci --prefix "$_TspClientDir" ``` - Run commands with `npm exec --prefix "$_TspClientDir" --no -- tsp-client` - See [`eng/common/tsp-client/README.md`](../../../eng/common/tsp-client/README.md) for prerequisites and more context 2. **Find the TypeSpec spec** - Look for a `tspconfig.yaml` under `specification/{service}/` in [azure-rest-api-specs](https://github.com/Azure/azure-rest-api-specs) - Check the `tspconfig.yaml` for `@azure-tools/typespec-rust` emitter configuration - If no emitter configuration exists, stop and report an error indicating that the TypeSpec specification in [Azure/azure-rest-api-specs](https://github.com/Azure/azure-rest-api-specs) must be updated before generating the client 3. **Initialize the crate** - From the repository root, run `npm exec --prefix "$_TspClientDir" --no -- tsp-client init --tsp-config {url}` - `{url}` is the GitHub URL to the `tspconfig.yaml` - Always use a specific commit SHA in the URL — never a branch or tag, which can move - Example: `https://github.com/Azure/azure-rest-api-specs/blob/{commit-sha}/specification/{service}/{rp}/tspconfig.yaml` 4. **Generate the client** - Use the `azsdk_package_generate_code` MCP tool, or - From the crate directory, run `npm exec --prefix "$_TspClientDir" --no -- tsp-client update` 5. **Add hand-written wrappers** - Create `clients.rs` (or similar) for custom client constructors, authentication setup, and convenience methods - Build on top of the generated code in `src/generated/` 6. **Register the crate** - Add the new crate to the workspace `members` list in the root `Cargo.toml` 7. **Add tests, examples, and documentation** - Write unit tests and integration tests (using `#[recorded::test]`) - Add examples, a `README.md`, and a `CHANGELOG.md`
Ver no GitHub