Limitations
Known limitations of the current Rivet implementation.
Type system
- No inheritance hierarchies or interface-typed properties — Rivet works with sealed records, sealed classes, structs, and enums. Class inheritance and interface-typed properties are not supported.
delete→removerename —deleteis a reserved word in TypeScript/JavaScript. When the generated function name would be literallydelete(e.g., a method namedDelete()), it is renamed toremove. Other[HttpDelete]endpoints (e.g.,RemoveItem()) keep their original name.
File uploads
- Single file only —
IFormFileis supported, butIFormFileCollectionandList<IFormFile>are not.
Real-time
- No SignalR or WebSocket support — Rivet generates HTTP clients only.
Developer experience
- No watch mode — you must re-run the CLI manually when your C# code changes. A
--watchflag may be added in the future. - No
dotnet rivet init— there's no scaffolding command to set up a project. Follow the Getting Started guide manually.
OpenAPI import
- OpenAPI 3.x JSON only — YAML specs and OpenAPI 2.0 (Swagger) are not supported.
- No
discriminatormappings —discriminatoris not supported. These produce a warning and are skipped.
