MCPcopy Index your code
hub / github.com/fission/fission

github.com/fission/fission @v1.27.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.27.0 ↗
5,313 symbols 25,714 edges 817 files 2,822 documented · 53%
README

Fission: Serverless Functions for Kubernetes

Fission Licence Fission Releases go.dev reference Go Report Card Fission contributors Commit Activity

Fission website Fission slack Fission twitter GitHub Repo stars OpenSSF Scorecard


Fission is an open-source, Kubernetes-native serverless framework that simplifies the deployment of functions and applications on Kubernetes. With Fission, developers can easily create and deploy serverless functions that can be triggered by a variety of events, such as HTTP requests, messages from a message queue, or scheduled tasks.

Fission provides a simple, easy-to-use interface for developers to create serverless functions in their language of choice, without having to worry about the underlying infrastructure. The framework also offers automatic scaling, so functions can scale up or down based on demand, without any additional configuration.

Fission operates on just the code: Docker and Kubernetes are abstracted away under normal operation, though you can use both to extend Fission if you want to.

Fission is extensible to any language; the core is written in Go, and language-specific parts are isolated in something called environments (more below). Fission currently supports NodeJS, Python, Ruby, Go, PHP, Bash, and any Linux executable, with more languages coming soon.

Table of Contents

Performance: 100msec cold start

Fission maintains a pool of "warm" containers that each contain a small dynamic loader. When a function is first called, i.e. "cold-started", a running container is chosen and the function is loaded. This pool is what makes Fission fast: cold-start latencies are typically about 100msec.

Kubernetes is the right place for Serverless

We're built on Kubernetes because we think any non-trivial app will use a combination of serverless functions and more conventional microservices, and Kubernetes is a great framework to bring these together seamlessly.

Building on Kubernetes also means that anything you do for operations on your Kubernetes cluster — such as monitoring or log aggregation — also helps with ops on your Fission deployment.

Getting Started

  # Add the stock NodeJS env to your Fission deployment
  $ fission env create --name nodejs --image ghcr.io/fission/node-env

  # Create a function with a javascript one-liner that prints "hello world"
  $ fission function create --name hello --env nodejs --code https://raw.githubusercontent.com/fission/examples/master/nodejs/hello.js

  # Run the function.  This takes about 100msec the first time.
  $ fission function test --name hello
  Hello, world!

Learn More

Contributing

Check out the contributing guide.

Who is using Fission?

Sponsors

The following companies, organizations, and individuals support Fission's ongoing maintenance and development. If you are using/contributing to Fission, we would be happy to list you here, please raise a Pull request.

InfraCloud Srcmesh

License

Fission is licensed under the Apache License 2.0 - see the LICENSE file for details

Extension points exported contracts — how you extend this code

ConditionedObject (Interface)
ConditionedObject is a CRD object whose status carries a Conditions slice. The generated Fission types satisfy it via th [9 …
pkg/controller/status.go
CapacityClient (Interface)
CapacityClient is the optional executor-client facet the fallback resolver uses when every known endpoint is saturated: [6 …
pkg/router/resolver_fallback.go
Validator (Interface)
Validator is an interface that can be implemented to provide custom validation logic. [46 implementers]
pkg/webhook/generic.go
FuncReconciler (Interface)
FuncReconciler is implemented by executor types to reconcile the Functions they own. The shared executor-level Function [4 …
pkg/executor/executortype/executortype.go
Resource (Interface)
(no doc) [5 implementers]
pkg/fission-cli/cmd/support/resources/resource.go
Recorder (Interface)
Recorder records per-request HTTP metrics. The mux invokes it for each matched route with the route's registered pattern [2 …
pkg/utils/httpmux/recorder.go
Storage (Interface)
Storage is an interface to force storage level details implementation. [2 implementers]
pkg/storagesvc/storagesvc.go
Subscription (Interface)
Subscription represents an active subscription to a message queue. It provides methods to stop the subscription and chec [2 …
pkg/mqtrigger/messageQueue/messageQueue.go

Core symbols most depended-on inside this repo

Context
called by 854
pkg/fission-cli/cliwrapper/cli/cli.go
Run
called by 723
pkg/executor/executortype/executortype.go
Error
called by 522
pkg/error/httperror.go
String
called by 453
pkg/fission-cli/cliwrapper/cli/cli.go
Info
called by 354
pkg/storagesvc/client/client.go
Close
called by 281
pkg/fission-cli/cmd/function/run_local.go
List
called by 167
pkg/storagesvc/client/client.go
Client
called by 166
pkg/fission-cli/cmd/cmd.go

Shape

Function 2,387
Method 2,199
Struct 557
Interface 122
TypeAlias 33
FuncType 13
Class 2

Languages

Go100%
Python1%
Java1%

Modules by API surface

pkg/apis/core/v1/zz_generated.deepcopy.go136 symbols
pkg/apis/core/v1/types.go74 symbols
pkg/apis/core/v1/validation.go62 symbols
pkg/apis/core/v1/zz_generated.swagger_doc_generated.go58 symbols
pkg/executor/executortype/poolmgr/gpm.go40 symbols
pkg/executor/reaper/idle/idle.go33 symbols
pkg/utils/httpsecurity/httpsecurity_test.go32 symbols
pkg/executor/executortype/newdeploy/newdeploymgr.go31 symbols
pkg/fission-cli/cmd/function/run_test.go30 symbols
pkg/executor/fscache/functionServiceCache.go30 symbols
pkg/executor/executortype/container/containermgr.go28 symbols
pkg/utils/namespace.go27 symbols

Dependencies from manifests, versioned

dario.cat/mergov1.0.2 · 1×
github.com/Azure/go-ansitermv0.0.0-2025010203350 · 1×
github.com/IBM/saramav1.50.3 · 1×
github.com/Masterminds/goutilsv1.1.1 · 1×
github.com/Masterminds/semverv1.5.0 · 1×
github.com/Masterminds/sprigv2.22.0+incompatible · 1×
github.com/Microsoft/go-winiov0.6.2 · 1×
github.com/Nvveen/Gottyv0.0.0-2012060400481 · 1×
github.com/ProtonMail/go-cryptov1.3.0 · 1×
github.com/STARRY-S/zipv0.2.3 · 1×
github.com/andybalholm/brotliv1.2.1 · 1×
github.com/beorn7/perksv1.0.1 · 1×

For agents

$ claude mcp add fission \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact