---
url: /zh/reference/api-levels.md
description: 公开 API 每个级别的承诺，以及实验性与 SPI 的声明。
---

# API 级别

已发布模块的每个公开声明都属于四个级别之一。ABI 转储（`<module>/api/<module>.api`）记录前三个级别的签名，所以对它们的改动会在审阅中显现。

| 级别 | 标记 | 承诺 |
| --- | --- | --- |
| 公开 | 无 | 10.x 的补丁版本保持二进制兼容。10.x 的次版本可能改动它，并在发布说明中列出每一处。 |
| 实验性 | `@ExperimentalWowApi` | 10.x 的次版本可能改动或移除它。使用时需要 `@OptIn(ExperimentalWowApi::class)`，否则编译器给出警告。 |
| SPI | `@WowSpi` | 后端与传输实现的端口；次版本可能改动它。使用时需要 `@OptIn(WowSpi::class)`，否则编译器给出警告。 |
| 内部 | `@InternalWowApi` | 只供 Wow 自己的模块使用，任何版本都可能改动或移除。应用无法选择使用（编译错误），ABI 转储也不包含它。 |

下面两张表由已发布模块的源码生成：带有该标记的公开声明。

## 实验性声明

| 声明 | 种类 | 模块 |
| --- | --- | --- |
| `me.ahoo.wow.api.read.Queries.datasets` | fun | `wow-api` |
| `me.ahoo.wow.api.read.datasets` | fun | `wow-api` |
| `me.ahoo.wow.query.AbacQueryOptions` | class | `wow-query` |
| `me.ahoo.wow.query.AbacQueryPolicy` | class | `wow-query` |
| `me.ahoo.wow.query.dataset.DatasetQueryBackend` | interface | `wow-query` |
| `me.ahoo.wow.query.dataset.DatasetQueryBackendFactory` | interface | `wow-query` |
| `me.ahoo.wow.query.dataset.AbstractDatasetQueryBackendFactory` | class | `wow-query` |
| `me.ahoo.wow.query.dataset.DatasetQueryGateway` | interface | `wow-query` |
| `me.ahoo.wow.query.dataset.DefaultDatasetQueryGateway` | class | `wow-query` |
| `me.ahoo.wow.query.dataset.DatasetQueryGateways` | class | `wow-query` |
| `me.ahoo.wow.query.dataset.DatasetQueryModelProfile` | class | `wow-query` |
| `me.ahoo.wow.query.dataset.DatasetVisibility` | interface | `wow-query` |
| `me.ahoo.wow.query.dataset.QueryDatasetScope` | class | `wow-query` |
| `me.ahoo.wow.query.dataset.QueryDataset` | class | `wow-query` |
| `me.ahoo.wow.query.dataset.QueryDatasetBuilder` | class | `wow-query` |
| `me.ahoo.wow.query.dataset.QueryDatasetFiles` | class | `wow-query` |
| `me.ahoo.wow.query.dataset.QueryDatasetChange` | interface | `wow-query` |
| `me.ahoo.wow.query.dataset.QueryDatasetListener` | interface | `wow-query` |
| `me.ahoo.wow.query.dataset.QueryDatasets` | class | `wow-query` |
| `me.ahoo.wow.query.read.datasetTrees` | fun | `wow-query` |
| `me.ahoo.wow.query.schema.DeclarationValue` | interface | `wow-query` |
| `me.ahoo.wow.query.schema.QuerySchemaDeclaration` | class | `wow-query` |
| `me.ahoo.wow.query.schema.QueryFieldDeclaration` | class | `wow-query` |
| `me.ahoo.wow.query.schema.QueryFieldDeclarationBuilder` | class | `wow-query` |
| `me.ahoo.wow.query.schema.QueryValueType` | class | `wow-query` |
| `me.ahoo.wow.query.schema.QueryValueKind` | class | `wow-query` |
| `me.ahoo.wow.query.schema.QuerySemanticType` | interface | `wow-query` |
| `me.ahoo.wow.query.schema.Temporal` | interface | `wow-query` |
| `me.ahoo.wow.clickhouse.query.ClickHouseDatasetQueryBackendFactory` | class | `wow-clickhouse` |
| `me.ahoo.wow.clickhouse.query.ClickHouseDatasetOptions` | class | `wow-clickhouse` |
| `me.ahoo.wow.http.ops.parkedRoutes` | fun | `wow-http` |
| `me.ahoo.wow.http.ops.OpsPaths` | object | `wow-http` |
| `me.ahoo.wow.http.ops.WebhookNotifier` | class | `wow-http` |
| `me.ahoo.wow.client.java.JavaQueries.datasets` | fun | `wow-client` |

## SPI 声明

| 声明 | 种类 | 模块 |
| --- | --- | --- |
| `me.ahoo.wow.spi.VirtualThreads` | object | `wow-spi` |
| `me.ahoo.wow.spi.ledger.FailureLedger` | interface | `wow-spi` |
| `me.ahoo.wow.spi.log.EventLog` | interface | `wow-spi` |
| `me.ahoo.wow.spi.log.TailPacer` | class | `wow-spi` |
| `me.ahoo.wow.spi.log.TailPolling` | class | `wow-spi` |
| `me.ahoo.wow.spi.observation.Observer` | interface | `wow-spi` |
| `me.ahoo.wow.spi.reservation.ReservationStore` | interface | `wow-spi` |
| `me.ahoo.wow.spi.sink.Sink` | interface | `wow-spi` |
| `me.ahoo.wow.spi.snapshot.SnapshotStore` | interface | `wow-spi` |
| `me.ahoo.wow.spi.store.Store` | class | `wow-spi` |
| `me.ahoo.wow.spi.store.StoreConfig` | class | `wow-spi` |
| `me.ahoo.wow.spi.store.StoreResources` | interface | `wow-spi` |
| `me.ahoo.wow.spi.store.StoreProvider` | interface | `wow-spi` |
| `me.ahoo.wow.spi.subscription.CheckpointStore` | interface | `wow-spi` |
| `me.ahoo.wow.spi.subscription.FailureClassifier` | interface | `wow-spi` |
| `me.ahoo.wow.spi.subscription.LeaseStore` | interface | `wow-spi` |
| `me.ahoo.wow.spi.timer.TimerStore` | interface | `wow-spi` |
| `me.ahoo.wow.spi.transport.PartitionedSource` | interface | `wow-spi` |
| `me.ahoo.wow.spi.transport.TopicAdmin` | interface | `wow-spi` |
| `me.ahoo.wow.spi.transport.TopicProducer` | interface | `wow-spi` |
| `me.ahoo.wow.query.QueryBackend` | interface | `wow-query` |
| `me.ahoo.wow.query.QueryBackendFactory` | interface | `wow-query` |
| `me.ahoo.wow.query.schema.QueryStorageAdapter` | interface | `wow-query` |
| `me.ahoo.wow.query.store.StoreQueryProvider` | interface | `wow-query` |
| `me.ahoo.wow.query.store.SnapshotQueries` | interface | `wow-query` |
| `me.ahoo.wow.query.store.EventQueries` | interface | `wow-query` |
| `me.ahoo.wow.query.store.QueryIndexReport` | class | `wow-query` |
| `me.ahoo.wow.query.store.StoreQueryOptions` | class | `wow-query` |
