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.