2023-11-26 01:20:38 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-25 04:02:45 +05:00
2023-11-26 01:20:38 +05:00

Embeddable code playgrounds

for education, documentation, and fun 🎉

Codapi is a platform for embedding interactive code snippets directly into your product documentation, online course, or blog post.

  python
┌───────────────────────────────┐
│ msg = "Hello, World!"         │
│ print(msg)                    │
│                               │
│                               │
│ run ►                         │
└───────────────────────────────┘
  ✓ 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.

Highlights:

  • Supports dozens of playgrounds out of the box, plus custom sandboxes if you need them.
  • Available as a cloud service and as a self-hosted version.
  • Open source. Uses the AGPL license. Committed to remaining open source forever.
  • Lightweight and easy to integrate.

Learn more at codapi.org

Installation

See Installing Codapi for details.

Usage (API)

Call /v1/exec to run the code in a sandbox:

POST https://api.codapi.org/v1/exec
content-type: application/json

{
    "sandbox": "python",
    "command": "run",
    "files": {
        "": "print('hello world')"
    }
}

sandbox is the name of the pre-configured sandbox, and command is the name of a command supported by that sandbox. See Configuration for details.

files is a map, where the key is a filename and the value is its contents. When executing a single file, it should either be named as the command expects, or be an empty string (as in the example above).

Response:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "python_run_9b7b1afd",
  "ok": true,
  "duration": 314,
  "stdout": "hello world\n",
  "stderr": ""
}
  • id is the unique execution identifier.
  • ok is true if the code executed without errors, or false otherwise.
  • duration is the execution time in milliseconds.
  • stdout is what the code printed to the standard output.
  • stderr is what the code printed to the standard error, or a compiler/os error (if any).

Usage (JavaScript)

See codapi-js to embed the JavaScript widget into a web page. The widget uses exactly the same API as described above.

Contributing

The project is not currently accepting contributions: I need to figure out licensing first.

License

Copyright 2023+ Anton Zhiyanov.

The software is available under the AGPL License.

Stay tuned

Subscribe to stay on top of new features.

Description
Codapi est une plateforme permettant d'intégrer des extraits de code interactifs directement dans la documentation de votre produit, votre cours en ligne ou votre article de blog. Codapi gère les sandbox (environnements d'exécution isolés) et fournit une API pour exécuter du code dans ces sandbox. Il fournit également un widget JavaScript codapi-js pour une intégration plus facile. Points forts: Convertit automatiquement les exemples de code statiques en mini-terrains de jeu. Léger et facile à intégrer. Bacs à sable pour tout langage de programmation, base de données ou logiciel. Open source. Utilise la licence permissive Apache-2.0.
Readme 150 KiB
Languages
Go 98.8%
Makefile 1.1%
Dockerfile 0.1%