Self-hosted service
nuclio/nuclio avatar
nuclio/nuclio

Nuclio: serverless built for data, not for demos

High-Performance Serverless event and data processing platform

5,763 stars562 forksGoApache-2.0

At a glance

What is it?
Nuclio is an Apache-2.0 licensed high-performance serverless framework for real-time event and data processing, focused on data, I/O and compute intensive workloads with CPU and GPU execution, claiming hundreds of thousands of requests per second per function instance. It runs as a standalone Docker deployment or on Kubernetes, integrates with Jupyter, Kubeflow and MLRun, and ships its dashboard in a single docker run.
Who is it for?
Use Nuclio when your functions are event pipelines over real infrastructure, Kafka records, streams, object storage, with GPU execution and autoscaling under Kubernetes, and when you want the same artifacts portable from laptop to edge to cloud. Prefer Knative when your platform standard is its serving and eventing primitives, or OpenFaaS when you want the simplest possible function story, since Nuclio's weight buys data-path machinery those do not center.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Go, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A serverless framework with a throughput thesis

Nuclio describes itself as a high-performance serverless framework for real-time events and data processing, focused on data, I/O and compute intensive workloads, and it attaches numbers to the adjective, a single function instance can process hundreds of thousands of HTTP requests or data records per second, which the README says is 10 to 100 times faster than some other frameworks. Those are the project's own claims, offered with an external comparison against AWS Lambda linked for the skeptical. The project began in 2017, describes itself as constantly and rapidly evolving, and states that startups and enterprises run it in production, with execution supported over both CPUs and GPUs. The audience positioning is consistent throughout, this is serverless for people whose functions move data, not for request handlers that format a response.

Five requirements that justified another one

The README answers the obvious question, why another serverless project, with a five-point indictment of what existing cloud and open-source solutions failed to address together. Real-time processing with minimal CPU, GPU and I/O overhead and maximum parallelism. Native integration with a large variety of data sources, triggers, processing models and ML frameworks. Stateful functions with data-path acceleration. Portability across low-power devices, laptops, edge and on-prem clusters and public clouds. And open source designed for the enterprise, with logging, monitoring, security and usability treated as first-release concerns rather than later additions. Nuclio was created to fulfill that list, and its architecture reflects the response, an intentionally extendable framework with a modular, layered approach supporting the constant addition of triggers and runtimes, an explicit invitation for the community to build new modules and developer tools rather than wait for the core team.

The dashboard in one docker run

The documented exploration path is the GUI, and its entire prerequisite is Docker:

sh
docker run -p 8070:8070 -v /var/run/docker.sock:/var/run/docker.sock --name nuclio-dashboard quay.io/nuclio/dashboard:stable-amd64

Browse to localhost on port 8070, create a project, add a function, and when running outside an orchestration platform the dashboard deploys straight to the local Docker daemon. The worked example deploys the pre-existing dates template for Node.js, confirms with docker ps that the function landed in its own container, and invokes it:

sh
curl -X POST -H "Content-Type: application/text" -d '{"value":2,"unit":"hours"}' http://localhost:37975

That a first function travels from template to curl in two commands and one browser page is the onboarding thesis, and the Kubernetes routes, plain k8s, GKE and AKS, extend the same story to clusters with either the dashboard or the nuctl command-line utility driving it.

When this happens, do that

The mechanism is summarized by the README's own phrase, when this happens, do that, and the machinery exists to abstract all the scaffolding between an event, a Kafka record written, an HTTP request, an expired timer, and the code that should process it. Users provide the trigger information and the handler, through nuctl, a REST API or the web UI, and hand the pair to a builder that crafts a container image holding the handler and the processor that executes it on incoming events, then publishes that image to a container registry. A deployer then translates the function's configuration into orchestrator-specific form, converting parameters like replica counts, auto-scaling timing and how many GPUs a function requests into whatever the target platform understands. The pipeline shape, code plus config to image to deployment, is why the same function can live on a laptop daemon and a production cluster unchanged.

The trigger list, read from the imports

The Go dependency list doubles as a trigger catalog, IBM's sarama for Kafka, nats.go for NATS, RabbitMQ through amqp091, MQTT through the paho client, Azure's AMQP, AWS S3 and Pub/Sub from the v2 SDKs, and Elasticsearch and OpenSearch clients for search-adjacent paths. That breadth backs the native-integration requirement from the why list with actual code, and the remaining imports cover the enterprise clauses, Kaniko for building function images at runtime without a Docker daemon and its security implications, an OPA client for policy decisions, JWT handling for authentication, Prometheus client libraries for metrics, and Application Insights support for shops standardized on Microsoft telemetry. For an evaluator, the imports answer the supported-sources question faster than any feature table, and they signal which ecosystems received first-class wiring. The variety also honors the original requirements list literally, since native integration with a large variety of data sources was the second of the five points the project set out to satisfy.

Wired into the ML toolchain by design

Nuclio's data-center orientation shows in its integrations rather than its benchmarks. The Nuclio Jupyter project provides a Python package and SDK for creating and deploying functions straight from a notebook, meeting data scientists where they already work. Nuclio is an integral part of MLRun, the open-source data science automation and tracking library, and of Kubeflow Pipelines for portable, scalable ML workflows, meaning functions written against Nuclio slot into two larger orchestration stories without adapters. At the commercial end, the same platform is offered fully managed, cloud or on-prem, through the Iguazio Data Science Platform, the company where the project originated, a conventional open-core arrangement with the Apache-2.0 core fully usable without it.

Two stable lines, maintained in parallel

Release management is the quiet surprise of the project, both the 1.16 and 1.17 lines received patches on 2026-09-24, 1.16.11 and 1.17.9, with 1.17.8 ten days earlier and the repository pushed today, evidence of a serious backport policy rather than upgrade-or-die maintenance. The default branch is named development, tooling includes git-cliff for changelog generation through cliff.toml, prose linting through a .vale.ini for the documentation, license compliance checks through .licenserc, and AGENTS.md and CLAUDE.md onboard coding assistants. The Makefile handles multi-arch builds across amd64, arm64 and armhf with quay.io as the upstream registry and ghcr for caching, and the docs publish to Read the Docs with a Chinese README translation alongside. The field includes OpenFaaS and Knative, but Nuclio's differentiator remains its own list, data-path machinery, GPU awareness and trigger breadth before simplicity.

Editorial conclusion

Use Nuclio when your functions are event pipelines over real infrastructure, Kafka records, streams, object storage, with GPU execution and autoscaling under Kubernetes, and when you want the same artifacts portable from laptop to edge to cloud. Prefer Knative when your platform standard is its serving and eventing primitives, or OpenFaaS when you want the simplest possible function story, since Nuclio's weight buys data-path machinery those do not center. Verify first which release line your operator supports, both 1.16 and 1.17 receive patches simultaneously, confirm your trigger is among the supported sources, and treat the throughput claims as the project's own figures to reproduce rather than promises.

Frequently asked questions

What is Nuclio?

Nuclio is an open-source, Apache-2.0 licensed high-performance serverless framework for real-time event and data processing, focused on data, I/O and compute intensive workloads with CPU and GPU execution. It runs standalone on Docker or on Kubernetes, and the project began in 2017.

How do you install Nuclio?

Run the dashboard container with docker run -p 8070:8070 -v /var/run/docker.sock:/var/run/docker.sock --name nuclio-dashboard quay.io/nuclio/dashboard:stable-amd64, then browse to localhost port 8070 to create a project and deploy a function. Dedicated getting-started guides cover Kubernetes, GKE and AKS.

How fast is Nuclio?

The project states that a single function instance can process hundreds of thousands of HTTP requests or data records per second, and claims this is 10 to 100 times faster than some other frameworks. An external comparison against AWS Lambda is linked from the README for independent reading.

Official sources

  1. License: Apache-2.0
  2. nuclio/nuclio on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/nuclio-nuclio.svg)](https://hysenlabs.com/projects/nuclio-nuclio)