runtime



A runtime for go OpenAPI toolkit.
The runtime component for use in code generation or as untyped usage.
Announcements
Complete documentation as github pages
Changes to the API surface in v0.30.0:
- utility package
header has now moved to github.com/go-openapi/runtime/server-middleware/negotiate/header
A shim is provided to support existing programs, with a deprecation notice.
Changes in semantics in v0.30.0:
Function negotiate.NegotiateContentType (available as an alias for backward compatibility as middleware.NegotiateContentType
now performs a full match considering MIME parameters.
The previous behavior (matching in order of appearance after stripping parameters) may be enabled explicitly with
option negotiate.WithIgnoreParameters.
- 2026-05-07 : exposed UI and Spec middleware as a separate, dependency-free module.
Newly available package: github.com/go-openapi/runtime/server-middleware/docui that now holds our
UI and spec serve middleware.
A shim is available in github.com/go-openapi/runtime/middleware to bridge the older UI options to the new ones,
with a deprecation notice.
Methods that were unduly exported and purely used to manipulate options (e.g. SwaggerUIOpts.EnsureDefaults) have been
removed. New options in docui should be used instead.
Users may reuse this middleware to serve a Redoc, Rapidoc or SwaggerUI documentation without
importing the complete go-openapi scaffolding.
- 2026-05-05 : exposed content negotiation methods as a separate, dependency-free module
Users may reuse these utilities to support content-negotiation without extra dependencies.
Newly available module: github.com/go-openapi/runtime/server-middleware
Newly available packages: github.com/go-openapi/runtime/server-middleware/negotiate and
github.com/go-openapi/runtime/server-middleware/mediatype.
Status
API is stable.
Import this library in your project
go get github.com/go-openapi/runtime
Change log
See https://github.com/go-openapi/runtime/releases
For v0.29.0 release see release notes.
From that release onwards, changes are tracked in the github release notes.
What coming next?
Moving forward, we want to :
Licensing
This library ships under the SPDX-License-Identifier: Apache-2.0.
See the license NOTICE, which recalls the licensing terms of all the pieces of software
on top of which it has been built.
Other documentation
Cutting a new release
Maintainers can cut a new release by either:
- running this workflow
- or pushing a semver tag
- signed tags are preferred
- The tag message is prepended to release notes