---
title: Installation
description: Install RDBMS Playground with a one-line installer, a package manager, cargo, or a prebuilt binary.
sidebar:
  order: 1
---

import { Tabs, TabItem } from '@astrojs/starlight/components';
import InstallOsDetect from '../../../components/InstallOsDetect.astro';

RDBMS Playground is a single self-contained program. There is nothing to
configure and no separate database to install — everything it needs is
built in.

Pick the tab for your platform — we try to select it automatically — then
use whichever method you prefer. The one-line installers are the quickest if
you just want to get going.

<InstallOsDetect />

<Tabs syncKey="install-os">
<TabItem label="Linux">

**One-line installer**

```sh
curl -fsSL https://git.lazyeval.net/oli/rdbms-playground/raw/branch/main/scripts/install.sh | sh
```

It detects your CPU, installs to `~/.local/bin`, and prints a hint if that
directory isn't on your `PATH`. Set `RDBMS_INSTALL_DIR` to install elsewhere,
or `RDBMS_VERSION=vX.Y.Z` to pin a version. Prefer to read a script before
running it? It lives at
[`scripts/install.sh`](https://git.lazyeval.net/oli/rdbms-playground/raw/branch/main/scripts/install.sh).

**Homebrew**

```sh
brew tap lazyeval/tap https://git.lazyeval.net/lazyeval/homebrew-tap
brew install lazyeval/tap/rdbms-playground
```

</TabItem>
<TabItem label="macOS">

**One-line installer**

```sh
curl -fsSL https://git.lazyeval.net/oli/rdbms-playground/raw/branch/main/scripts/install.sh | sh
```

It detects your CPU (Apple Silicon or Intel), installs to `~/.local/bin`, and
prints a hint if that directory isn't on your `PATH`. Set `RDBMS_INSTALL_DIR`
to install elsewhere, or `RDBMS_VERSION=vX.Y.Z` to pin a version. Prefer to
read a script before running it? It lives at
[`scripts/install.sh`](https://git.lazyeval.net/oli/rdbms-playground/raw/branch/main/scripts/install.sh).

**Homebrew**

```sh
brew tap lazyeval/tap https://git.lazyeval.net/lazyeval/homebrew-tap
brew install lazyeval/tap/rdbms-playground
```

</TabItem>
<TabItem label="Windows">

**One-line installer (PowerShell)**

```powershell
irm https://git.lazyeval.net/oli/rdbms-playground/raw/branch/main/scripts/install.ps1 | iex
```

It downloads the matching `.exe`, verifies its checksum, installs to
`%LOCALAPPDATA%\Programs\rdbms-playground`, and adds that folder to your user
`PATH`. Use `-InstallDir` to choose a different location or `-Version` to pin
a release.

**Scoop**

```sh
scoop bucket add lazyeval https://git.lazyeval.net/lazyeval/scoop-bucket
scoop install rdbms-playground
```

**winget**

A winget package (`winget install LazyEvaluation.RdbmsPlayground`) is on its
way and awaiting review in the public winget catalogue. Until it lands, use
Scoop or the PowerShell one-liner above.

</TabItem>
</Tabs>

## With cargo

These work on any platform with a Rust toolchain. Install from
[crates.io](https://crates.io/crates/rdbms-playground):

```sh
cargo install rdbms-playground
```

For a faster install that fetches a prebuilt binary instead of compiling, use
[`cargo-binstall`](https://github.com/cargo-bins/cargo-binstall) (install it
first — it is not part of `cargo` itself):

```sh
cargo binstall rdbms-playground
```

## Prebuilt binaries

Every release publishes static Linux, standalone Windows, and macOS binaries
(x86_64 and aarch64), each with a `.sha256` checksum, on the
[releases page](https://git.lazyeval.net/oli/rdbms-playground/releases).
Download the one for your platform, make it executable if needed, and put it
somewhere on your `PATH`.

## Run it

Start the playground with no arguments and it opens a fresh, automatically
named temporary project so you can start experimenting immediately:

```sh
rdbms-playground
```

To open an existing project, pass its path:

```sh
rdbms-playground path/to/project
```

Useful options (run `rdbms-playground --help` for the full list):

| Option | What it does |
|---|---|
| `--resume` | Reopen the most recently used project. |
| `--data-dir <PATH>` | Use a different location for stored projects. |
| `--theme <light\|dark>` | Force a theme instead of auto-detecting. |
| `--mode <simple\|advanced>` | Start in a specific input mode. |
| `--version` | Print the version and exit. |

The full list, with examples, is on the
[command-line options](/using-the-playground/command-line-options/) page.

Next: [create your first project](/getting-started/first-project/).
