codapi

module
v0.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 28, 2025 License: Apache-2.0

README

Interactive code examples

Codapi is a lightweight sandbox server for interactive documentation and learning.

With Codapi, you can add interactive code snippets right into your product documentation, online course, or blog post. Codapi is also great for trying out new programming languages, databases, or tools in a safe sandbox environment.

┌───────────────────────────────┐
│ def greet(name):              │
│   print(f"Hello, {name}!")    │
│                               │
│ greet("World")                │
└───────────────────────────────┘
  Run ►  Edit  ✓ Done
┌───────────────────────────────┐
│ Hello, World!                 │
└───────────────────────────────┘

Codapi manages sandboxes (isolated execution environments) and provides an API to execute code in these sandboxes. It also provides a JavaScript widget codapi-js for easier integration.

For an introduction to Codapi, see this post: Interactive code examples for fun and profit.

Installation

To run Codapi locally, follow these steps:

  1. Install Docker (or Podman/OrbStack) for your operating system.
  2. Install the latest Codapi release (change the linux_amd64 part according to your OS):
mkdir ~/codapi && cd ~/codapi
curl -L -o codapi.tar.gz "https://github.com/nalgeon/codapi/releases/download/v0.11.0/codapi_0.11.0_linux_amd64.tar.gz"
tar xvzf codapi.tar.gz
rm -f codapi.tar.gz
  1. Build the sample ash sandbox image:
docker build --file sandboxes/ash/Dockerfile --tag codapi/ash:latest sandboxes/ash
  1. Start the server:
./codapi

Usage

See Adding a sandbox to add a sandbox from the registry or create a custom one.

See API to run sandboxed code using the HTTP API.

See codapi-js to embed the JavaScript widget into a web page.

Production

Running in production is a bit more involved. See these guides:

Contributing

Contributions are welcome. For anything other than bugfixes, please first open an issue to discuss what you want to change.

Be sure to add or update tests as appropriate.

Support

Codapi is mostly a one-man project, not backed by a VC fund or anything.

If you find Codapi useful, please star it on GitHub and spread the word among your peers. It really helps to move the project forward.

Subscribe to stay on top of new features.

Directories

Path Synopsis
Codapi safely executes code snippets using sandboxes.
Codapi safely executes code snippets using sandboxes.
internal
config
Package config reads application config.
Package config reads application config.
engine
Execute commands using Docker.
Execute commands using Docker.
execy
Package execy runs external commands.
Package execy runs external commands.
fileio
Package fileio provides high-level file operations.
Package fileio provides high-level file operations.
httpx
Package httpx provides helper functions for making HTTP requests.
Package httpx provides helper functions for making HTTP requests.
logx
Package logx provides helper functions for logging.
Package logx provides helper functions for logging.
sandbox
Creates sandboxes according to the configuration.
Creates sandboxes according to the configuration.
server
Reading requests and writing responses.
Reading requests and writing responses.
stringx
Package stringx provides helper functions for working with strings.
Package stringx provides helper functions for working with strings.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL