Experimental APIs
Respire uses System.Diagnostics.CodeAnalysis.ExperimentalAttribute to identify public APIs whose contracts are still settling. These APIs are available to try, but are outside the compatibility promise for the first supported major release, targeted at 2.0.0. They may change or be removed in a later release, including a minor or patch release.
The compiler reports an error when you use one of these APIs, even without warnings-as-errors enabled. Opt in by suppressing that feature's diagnostic ID with NoWarn in your project or a scoped #pragma warning disable. Each diagnostic page shows the exact opt-in. Suppression acknowledges the compatibility risk; it does not change runtime behavior or server requirements.
| Diagnostic | Experimental surface |
|---|---|
| RSP0001 | VectorData integration |
| RSP0002 | Semantic chat caching, embedding caching, chat history, and Agent Framework history providers |
| RSP0003 | Hedged reads |
| RSP0004 | Hash import sessions |
| RSP0005 | Deferred raw commands |
| RSP0006 | StackExchange.Redis compatibility |
VectorData, AI, and StackExchangeCompat carry assembly-level attributes, so their entire public surfaces are experimental. Core Respire uses type/member attributes so ordinary client, hash, batch, and transaction APIs do not require an opt-in. Respire's own builds opt in to these six IDs to implement and test the features; that build setting is not shipped to consumers.
The RSPxxxx IDs are compiler diagnostics for experimental features. They are distinct from the RESP001–RESP006 analyzer and source-generator diagnostics, which are tracked as shipped in release 2.0.0. An experimental ID remains tied to its feature and will not be reused for a different feature after stabilization.
See the C# experimental attribute specification for compiler behavior.
Contributors changing these APIs should follow the package-validation exception process.