# Quick Start

Get lightweight, real-protocol services running in under a minute.

## Install

```bash
npm install @parlel/parlel-pool
```

## Start Services

```bash
# CLI
parlel up redis postgres

# Or via SDK
import { createParallel } from "@parlel/parlel-pool/sdk";

const parlel = createParallel();
const connections = await parlel.up(["redis", "postgres"]);
```

## Use Them

```typescript
import Redis from "ioredis";
import pg from "pg";

const redis = new Redis(connections.get("redis").port);
const db = new pg.Pool({ port: connections.get("postgres").port });

await redis.set("key", "value");
await db.query("CREATE TABLE users (id SERIAL PRIMARY KEY, name TEXT)");
```

## Run Your Tests

```typescript
import { createTestContext } from "@parlel/parlel-pool/agent";

const ctx = await createTestContext();

// Redis and Postgres are ready
await ctx.redis.set("session:123", '{"user":"alice"}');
await ctx.postgres.execute("CREATE TABLE users (id SERIAL PRIMARY KEY, email TEXT)");

// Inspect state
const state = await ctx.dump("redis");
console.log(state.keys); // ["session:123"]

// Cleanup
await ctx.cleanup();
```

## What You Get

| Feature | Value |
|---------|-------|
| Startup time | < 1 second |
| Memory per service | ~50-100 KB |
| Protocols | Real RESP, wire protocol, binary |
| State | Ephemeral, disappears on cleanup |
| Side effects | None |

## Available Services

| Service | Port | Protocol |
|---------|------|----------|
| `redis` | 6379 | RESP (TCP) |
| `postgres` | 5432 | Wire protocol (TCP) |
| `kafka` | 9092 | Binary (TCP) |
| `mysql` | 3306 | Wire protocol (TCP) |
| `elasticsearch` | 9200 | HTTP |
| `cassandra` | 9042 | Binary (TCP) |
| `rabbitmq` | 5672 | AMQP (TCP) |
| `supabase` | 54321 | HTTP (REST) |
| `sqlite` | — | Embedded |

## Next Steps

- [How Agents Access It](./agent-access.md) — full API reference
- [Redis](./redis.md) — Redis-specific commands and patterns
- [Postgres](./postgres.md) — Postgres-specific SQL support
