TypeScript SDK for the Piston code execution API.
npm install @codize/piston

TypeScript SDK for the Piston code execution API. Execute untrusted code safely in sandboxed environments with support for 50+ programming languages.
``bashnpm
npm install @codize/piston
Quick Start
`typescript
import { Piston } from "@codize/piston";const piston = new Piston("https://emkc.org/api/v2/piston");
const result = await piston.execute({
language: "python",
version: "3.x",
files: [{ content: 'print("Hello, World!")' }],
});
console.log(result.run.stdout); // "Hello, World!\n"
`Usage
$3
`typescript
import { Piston } from "@codize/piston";const piston = new Piston("https://emkc.org/api/v2/piston");
const runtimes = await piston.runtimes();
for (const runtime of runtimes) {
console.log(
${runtime.language} ${runtime.version});
}
`$3
`typescript
import { Piston } from "@codize/piston";const piston = new Piston("https://emkc.org/api/v2/piston");
const result = await piston.execute({
language: "javascript",
version: "*",
files: [
{
name: "index.js",
content: 'console.log("Hello from JavaScript!");',
},
],
});
console.log(result.run.stdout);
`$3
`typescript
const result = await piston.execute({
language: "python",
version: "3.x",
files: [
{
content: ,
},
],
stdin: "Alice",
args: ["--verbose", "--count=3"],
});
`$3
`typescript
const result = await piston.execute({
language: "c",
version: "*",
files: [
{
name: "main.c",
content: int main() {
printf("Hello from C!\\n");
return 0;
},
},
],
});
// Check compile stage result
if (result.compile) {
console.log("Compile stdout:", result.compile.stdout);
console.log("Compile stderr:", result.compile.stderr);
}
console.log("Run stdout:", result.run.stdout);
`
`typescript
const result = await piston.execute({
language: "python",
version: "3.x",
files: [{ content: 'print("Hello!")' }],
// Compile stage constraints (for compiled languages)
compileTimeout: 10000, // 10 seconds wall-time
compileCpuTime: 10000, // 10 seconds CPU time
compileMemoryLimit: 256 1024 1024, // 256MB
// Run stage constraints
runTimeout: 3000, // 3 seconds wall-time
runCpuTime: 3000, // 3 seconds CPU time
runMemoryLimit: 64 1024 1024, // 64MB
});
`
`typescript
const result = await piston.execute({
language: "python",
version: "3.x",
files: [
{
name: "main.py",
content:
from utils import greet
greet("World"),
},
{
name: "utils.py",
content:
def greet(name):
print(f"Hello, {name}!"),`
},
],
});
`typescript
// Global headers (applied to all requests)
const piston = new Piston("https://emkc.org/api/v2/piston", {
headers: {
Authorization: "Bearer your-api-key",
},
});
// Per-request headers (override global headers)
const result = await piston.execute(
{
language: "python",
version: "3.x",
files: [{ content: 'print("Hello!")' }],
},
{
headers: { "X-Request-Id": "req-123" },
}
);
// Also works with runtimes()
const runtimes = await piston.runtimes({
headers: { "X-Request-Id": "req-456" },
});
``
- Piston - The code execution engine
- Piston API Documentation