This repository contains sandboxes for Codapi, a tool for trying programming languages, databases and other software in an isolated environment.
To use a particular sandbox:
- Install Codapi
- Add a sandbox by its name with
./codapi-cli sandbox add <name>
, e.g:
./codapi-cli sandbox add lua
./codapi-cli sandbox add go
./codapi-cli sandbox add mariadb
- Restart the Codapi server.
See the available sandboxes below, or try them out.
Sandbox = image + box + commands:
- Image as a Docker image containing specific software, like a compiler or a database engine.
- Box is a configuration for running a container: cpu and memory restrictions, file systems, etc.
- Commands are predefined actions you can run in a container.
You can use sandboxes from this repository or create your own.
Name | Sandbox |
---|---|
shell |
Bash/Zsh |
gcc |
C |
dotnet |
C# |
cpp |
C++ |
elixir |
Elixir |
go |
Go |
java |
Java |
typescript |
JavaScript |
kotlin |
Kotlin |
lua |
Lua |
odin |
Odin |
php |
PHP |
python |
Python |
rlang |
R |
raku |
Raku |
ruby |
Ruby |
rust |
Rust |
typescript |
TypeScript |
vlang |
V |
zig |
Zig |
Client-server databases like MySQL typically use two images: a server and a client:
- The server container is started when you add a sandbox using
codapi-cli
. - The client container is created by the Codapi server on each request.
Name | Sandbox |
---|---|
chdb |
chDB |
clickhouse |
ClickHouse |
duckdb |
DuckDB |
mariadb |
MariaDB |
mongodb |
MongoDB |
mysql |
MySQL |
postgres |
PostgreSQL |
mssql |
SQL Server |
sqlite |
SQLite |
Name | Sandbox |
---|---|
caddy |
Caddy |
net-tools |
Network tools |
Contributions are welcome. For anything other than bugfixes, please first open an issue to discuss what you want to change.
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.