Skip to main content

SDK Overview

Rexec provides official SDKs in multiple programming languages to help you integrate Terminal as a Service into your applications. All SDKs offer a consistent API for managing containers, files, and terminal connections.

Available SDKs

Go

Native Go SDK with full type safety and context support

JavaScript/TypeScript

Universal SDK for Node.js and browsers with TypeScript support

Python

Async-first Python SDK with type hints and context managers

Rust

Memory-safe Rust SDK with async/await and builder patterns

PHP

Modern PHP SDK with PSR-compatible HTTP client

Ruby

Idiomatic Ruby SDK with blocks and concurrent operations

.NET

Cross-platform .NET SDK with async/await and LINQ support

Java

Enterprise-ready Java SDK with builder patterns

Common Features

All SDKs provide:

Container Management

  • Create, start, stop, and delete containers
  • List and inspect containers
  • Configure environment variables and labels
  • Execute commands in containers

File Operations

  • List directory contents
  • Upload and download files
  • Create directories
  • Delete files and directories

Terminal Connections

  • Real-time WebSocket-based terminal access
  • Send commands and receive output
  • Terminal resizing support
  • Event-driven or streaming APIs

Authentication

All SDKs use Bearer token authentication:
# Get your API token from the Rexec dashboard
Authorization: Bearer your-api-token
Tokens are passed during client initialization:
client := rexec.NewClient(
    "https://your-instance.com",
    "your-api-token"
)

Quick Example

Here’s a simple example showing container creation and terminal interaction:
container, err := client.Containers.Create(ctx, &rexec.CreateContainerRequest{
    Image: "ubuntu:24.04",
    Name:  "my-sandbox",
})

term, err := client.Terminal.Connect(ctx, container.ID)
term.Write([]byte("echo 'Hello World'\n"))

Getting Help

  • GitHub: github.com/brimblehq/rexec
  • Issues: Report bugs or request features on GitHub
  • Community: Join our Discord for SDK support

Contributing

All SDKs are open source under the MIT License. Contributions are welcome! See each SDK’s repository for contribution guidelines.

Build docs developers (and LLMs) love