来源信息
- 仓库
- Azure/azure-sdk-for-rust
- 最近来源活动
- 2026年8月31日 16:53
- 检测到的 SKILL.md 语言
- 英语
- 星标
- 886
- Forks
- 377
安装方式
默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。
检查来源文件
决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。
正在显示 SKILL.md
SKILL.md
来源说明 · 只读预览- 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`
在 GitHub 查看