Project maintained by kurtosis-tech Hosted on GitHub Pages — Theme by mattgraham

Kurtosis Modules

What’s a module?

You might want to package your logic for a wider audience (e.g. your users), or you might want to consume someone else’s logic. Kurtosis’ solution to this are “modules”, which are chunks of code, packaged as container images, that execute within the Kurtosis context. You can think of a module as a language-agnostic library.

To write your own module, visit the module starter pack repo.


Some hypothetical modules that could be built:

Executable Modules

The most basic module is an executable module - a module that responds to exactly one command, “execute”. To make these easy to run, the Kurtosis CLI comes with the following command that will load an executable module and call its execute command:

kurtosis module exec EXECUTABLE_MODULE_IMAGE

You can run kurtosis module exec -h for more detailed information about the flags that can be passed in.

Known Modules

The current modules we know about:

Technical Details

Under the covers, modules are:

  1. A gRPC server
  2. In an arbitrary language
  3. With a connection to the Kurtosis engine
  4. With endpoints for interacting with the module
    • E.g. an executable module will have an “execute” endpoint
  5. That is packaged inside a Docker image

The containerized nature of modules means that they can be written in your language of choice, and easily distributed via Dockerhub.

The API that a module must implement is defined in the module API lib.

Back to index