Skip to main content

create-crate

Create a new Azure SDK crate from a TypeSpec specification.

Datos de origen

Repositorio
Azure/azure-sdk-for-rust
Última actividad en el origen
31 de agosto de 2026 a las 16:53
Idioma detectado de SKILL.md
inglés
Estrellas
885
Forks
375

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
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 en GitHub