https://github.com/nalgeon/sandboxes
Sandboxes for running code and tools
https://github.com/nalgeon/sandboxes
codapi code-sandbox sandbox
Last synced: 10 months ago
JSON representation
Sandboxes for running code and tools
- Host: GitHub
- URL: https://github.com/nalgeon/sandboxes
- Owner: nalgeon
- License: apache-2.0
- Created: 2025-04-12T16:13:32.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-08T17:43:36.000Z (10 months ago)
- Last Synced: 2025-06-12T12:54:32.630Z (10 months ago)
- Topics: codapi, code-sandbox, sandbox
- Language: Shell
- Homepage: https://codapi.org
- Size: 120 KB
- Stars: 83
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sandboxes
This repository contains sandboxes for [Codapi](https://github.com/nalgeon/codapi), a tool for trying programming languages, databases and other software in an isolated environment.
To use a particular sandbox:
1. [Install Codapi](https://github.com/nalgeon/codapi#installation)
2. Add a sandbox by its name with `./codapi-cli sandbox add `, e.g:
```sh
./codapi-cli sandbox add lua
./codapi-cli sandbox add go
./codapi-cli sandbox add mariadb
```
3. Restart the Codapi server.
See the available sandboxes below, or [try them out](https://codapi.org/#sandboxes).
## What is a sandbox
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](https://github.com/nalgeon/codapi/blob/main/docs/add-sandbox.md).
## Programming languages
| Name | Sandbox |
| ------------ | ---------------------------------- |
| `shell` | [Bash/Zsh](sandboxes/shell) |
| `gcc` | [C](sandboxes/gcc) |
| `dotnet` | [C#](sandboxes/dotnet/) |
| `cpp` | [C++](sandboxes/cpp) |
| `elixir` | [Elixir](sandboxes/elixir) |
| `go` | [Go](sandboxes/go) |
| `java` | [Java](sandboxes/java) |
| `typescript` | [JavaScript](sandboxes/typescript) |
| `kotlin` | [Kotlin](sandboxes/kotlin) |
| `lua` | [Lua](sandboxes/lua) |
| `odin` | [Odin](sandboxes/odin) |
| `php` | [PHP](sandboxes/php) |
| `python` | [Python](sandboxes/python) |
| `rlang` | [R](sandboxes/rlang) |
| `raku` | [Raku](sandboxes/raku) |
| `ruby` | [Ruby](sandboxes/ruby) |
| `rust` | [Rust](sandboxes/rust) |
| `typescript` | [TypeScript](sandboxes/typescript) |
| `vlang` | [V](sandboxes/vlang) |
| `zig` | [Zig](sandboxes/zig) |
## Databases
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](sandboxes/chdb) |
| `clickhouse` | [ClickHouse](sandboxes/clickhouse) |
| `duckdb` | [DuckDB](sandboxes/duckdb) |
| `mariadb` | [MariaDB](sandboxes/mariadb) |
| `mongodb` | [MongoDB](sandboxes/mongodb) |
| `mysql` | [MySQL](sandboxes/mysql) |
| `postgres` | [PostgreSQL](sandboxes/postgres) |
| `mssql` | [SQL Server](sandboxes/mssql) |
| `sqlite` | [SQLite](sandboxes/sqlite) |
## Network & tools
| Name | Sandbox |
| ----------- | ------------------------------------ |
| `caddy` | [Caddy](sandboxes/caddy) |
| `net-tools` | [Network tools](sandboxes/net-tools) |
## Contributing
Contributions are welcome. For anything other than bugfixes, please first open an issue to discuss what you want to change.
## Support
Codapi is mostly a [one-man](https://antonz.org/) 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](https://antonz.org/subscribe/) to stay on top of new features.