Install
Pondra is one program. Install it once and you have the SQL shell and the server; with pip or npm you get the Python or JavaScript client as well. It needs no admin rights and nothing else installed: no database, no Java.
| You have | Run | Then |
|---|---|---|
| Linux, macOS | curl -fsSL https://github.com/alimardon123/pondra/releases/latest/download/install.sh | sh |
pondra |
| Windows | irm https://github.com/alimardon123/pondra/releases/latest/download/install.ps1 | iex |
pondra |
| Python | pip install pondra |
pondra, python -m pondra, or import pondra |
| Node | npm install -g pondra (or npm install pondra in a project) |
pondra, or npx pondra with no install |
Linux and macOS
Section titled “Linux and macOS”curl -fsSL https://github.com/alimardon123/pondra/releases/latest/download/install.sh | shThe script downloads the binary for your machine into ~/.local/bin and puts that folder on your
PATH, once, in your shell’s startup file (.zshrc, .bashrc, .bash_profile on macOS, or
.profile). A piped script can’t change the terminal it runs in, so open a new terminal, or run the
export PATH=… line it prints.
Three environment variables change what it does: PONDRA_VERSION (a release such as 0.29.0
instead of the latest), PONDRA_INSTALL (another folder), and PONDRA_ARCHIVE (a file or URL of
your own build).
Windows
Section titled “Windows”In PowerShell:
irm https://github.com/alimardon123/pondra/releases/latest/download/install.ps1 | iexThis puts pondra.exe in %LOCALAPPDATA%\Programs\pondra and adds that folder to your user Path,
for this terminal and the ones you open next. $env:PONDRA_VERSION, $env:PONDRA_INSTALL and
$env:PONDRA_ARCHIVE work as above.
If you prefer Linux tools on Windows, install WSL2 (wsl --install) and use the Linux line above.
Python
Section titled “Python”pip install pondraThe package holds two things: the Python client (plain Python, no dependencies) and the pondra
program, which pip puts next to Python. import pondra gives you the client, and pondra.local()
starts a node for you.
If your terminal says pondra isn’t found, pip put it in a folder that isn’t on your PATH. This
happens with user installs into a Python installed for everyone, on Windows and macOS.
python -m pondra runs the same program from wherever pip put it, with the same arguments:
python -m pondra --versionpondra 0.29.0To fix it for good, run python -m pondra --add-to-path once. It does what the installers do:
adds the folder to your PATH, and tells you where.
pyarrow is optional
Section titled “pyarrow is optional”pandas, Polars and Arrow results need pyarrow. Add it when you want them:
pip install "pondra[arrow]" # the same as: pip install pondra pyarrowWithout pyarrow the client still runs SQL and returns rows as Python dicts:
- Works:
sql(...).rows(),.item(),.show(), and a procedure’s answer. Rows come as JSON, so dates and times are text. - Needs pyarrow:
.collect(),.to_arrow(),.to_pandas(),.to_polars(). They raise anImportErrorthat says so. - Python functions and procedures run on pyarrow too, so a node that runs them needs it. A node
started with
--python autothat finds no Python with thepondrapackage and pyarrow says so:no Python with the pondra package and pyarrow was found (pip install pondra pyarrow; or --python <python>).
npm install -g pondra # the pondra commandnpm install pondra # or the JavaScript client, in a projectnpx pondra # or run it once, with no installThe package holds the JavaScript client (Node 18 or newer, no dependencies). The program itself
comes from a platform package (pondra-linux-x64, pondra-linux-arm64, pondra-macos-x64,
pondra-macos-arm64, pondra-windows-x64); npm installs only the one that fits your machine.
The plain binary
Section titled “The plain binary”Every release has the program alone for each
platform, as pondra-<platform>.tar.gz (Linux, macOS) or .zip (Windows), with <platform> one of
linux-x64, linux-arm64, macos-x64, macos-arm64, windows-x64. Unpack it and put pondra
anywhere. To build it yourself, install Rust and run cargo build --release.
Check that it runs
Section titled “Check that it runs”pondra --versionpondra 0.29.0Then open a SQL shell with pondra (see The shell), or write your first
table in Your first lake. Every node also serves a web page for SQL and
Python at its address: start one with pondra serve lake and open http://localhost:8080 for
the console.
Which systems
Section titled “Which systems”- Linux: any distribution with glibc 2.17 or newer, which is anything from 2014 on. Tested on CentOS 7 and Ubuntu 22.04, the base of most cloud notebooks. x86-64 and ARM.
- macOS: Intel and Apple silicon.
- Windows: the installer, pip and npm packages, or WSL2.