serving is a free, open source frameworks & platforms project written in Go and released under Apache-2.0. It has 6,094 GitHub stars, 1,235 forks and 165 open issues, and was last pushed 24 days ago. On this registry it ranks #30 of 44 tracked projects in Frameworks & Platforms, with 5 head-to-head comparisons available.

What is serving?

Knative Serving is an Apache-2.0 licensed, Go-based Kubernetes component that deploys and serves applications and functions as serverless containers, built for platform engineers and developers who run workloads on Kubernetes and need request-driven, scale-to-zero compute without leaving their own cluster.

What it is

Knative Serving is a middleware layer that sits on top of Kubernetes and turns ordinary container images into request-driven services. It provides the primitives for rapid deployment of serverless containers, automatic scaling up and down to zero, routing and network programming, and point-in-time snapshots of deployed code and configurations. It lives in the Knative ecosystem, alongside the wider set of Knative components, and it is written in Go, published under the Apache-2.0 licence.

The concrete problem it solves is that plain Kubernetes has no native notion of serving a container only while traffic arrives. Knative Serving replaces hand-rolled combinations of Deployments, Services, Ingress rules, Horizontal Pod Autoscalers, and custom routing configuration with a single declarative model for application and function serving. Instead of provisioning capacity for peak load and paying for idle replicas, operators describe what should be served and Knative Serving handles the deployment, the routing, and the scaling down to zero when no requests are in flight — including the snapshots of the deployed code and configuration that let a specific revision be identified and restored.

Key capabilities

  • Deploys applications and functions as serverless containers on an existing Kubernetes cluster.
  • Scales automatically up and down to zero, driven by incoming requests rather than by a fixed replica count.
  • Provides an autoscaler as a core component, matching capacity to request volume.
  • Handles routing and network programming so that traffic reaches the right revision of a service.
  • Takes point-in-time snapshots of deployed code and configurations.
  • Exposes middleware primitives rather than a closed platform, so serving behaviour can be composed with other cluster tooling.
  • Ships a published specification alongside the implementation, with the spec documented in the docs folder of the repository.

Who uses it and how

  • Platform teams that already run Kubernetes and want serverless semantics on their own infrastructure instead of a separate hosted runtime.
  • Teams deploying both long-running applications and short-lived functions, since Serving treats both as serverless containers behind the same model.
  • Workloads with uneven or bursty traffic, where scaling to zero removes the cost and cluster capacity consumed by idle replicas.
  • Contributors and integrators working against the Serving specification in the repository docs folder, or tracking help-wanted work through the project's CLOTRIBUTOR listing.
  • Operators who need a saved record of exactly what code and configuration was deployed at a given moment, using the project's snapshot capability.

Getting started

The README directs users to the serving section of the Knative documentation site at https://knative.dev/docs/serving/ for installation and usage instructions, and to the Knative Serving specification in the docs folder for the formal behaviour description. Contributors are pointed to CONTRIBUTING.md and DEVELOPMENT.md in the repository.

How it compares

No list of paid products that this project replaces is present in the supplied facts, and no comparable self-hosted projects are named in them either. On the evidence available, Knative Serving stands alone in this registry.

When to use it — and when not to

A self-hoster takes on operating a Kubernetes cluster plus the Serving control plane, the autoscaler, and the networking and routing layers, so the project is a poor fit for anyone without existing Kubernetes operational capacity or a reason to keep serving inside their own infrastructure. The README is short and index-like — it links out to the documentation site rather than walking through installation, configuration, or upgrade steps — so prospective users should read the external docs before committing, and contributors should expect the real guidance to live in CONTRIBUTING.md, DEVELOPMENT.md, and the specification rather than in the repository front page. With 165 open issues and active repository activity, the project is maintained, but it is infrastructure software rather than a self-contained product, and it should be adopted as such.

project readme (upstream, from github) — read inline

Knative Serving

go.dev reference Go Report Card Releases LICENSE Slack Status codecov CII Best Practices

Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. Serving is easy to get started with and scales to support advanced scenarios.

The Knative Serving project provides middleware primitives that enable:

  • Rapid deployment of serverless containers
  • Automatic scaling up and down to zero
  • Routing and network programming
  • Point-in-time snapshots of deployed code and configurations

For documentation on using Knative Serving, see the serving section of the Knative documentation site.

For documentation on the Knative Serving specification, see the docs folder of this repository.

If you are interested in contributing, see CONTRIBUTING.md and DEVELOPMENT.md. For a list of all help wanted issues across Knative, take a look at CLOTRIBUTOR.

Frequently asked questions

Is serving free to use?

serving is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does serving do?

Kubernetes-based, scale-to-zero, request-driven compute

What is serving written in?

serving is primarily written in Go. Its source is publicly available at https://github.com/knative/serving, and it has 6,094 GitHub stars.