/2x-playground

Developer Experience experimentation for 2.x

Primary LanguageHTMLMIT LicenseMIT

2x-playground

This repository provides a wide range of examples which allow you to experiment with the XTDB’s UX.

.
├── README.adoc
├── SQL.adoc
│
│   # clients:
├── clojure
├── psql
├── python
│
│   # servers:
├── xtdb-server-clj
└── xtdb-server-docker

Start a server

Option 1: Docker

docker pull ghcr.io/xtdb/xtdb-ea
docker run -ti --rm -p 5432:5432 -p 9832:9832 -p 3000:3000 ghcr.io/xtdb/xtdb-ea:latest

Option 2: JAR

TODO

Option 3: Clojure in-process

  • Make sure Clojure is installed

  • cd xtdb-server-clj && ./run.sh

XTDB SQL

The SQL dialect available in XTDB tries very hard to adhere to the SQL Specification. There are small deviations from the spec where absolutely required. Read more in SQL.adoc.

psql

Install psql (Postgres) if you don’t have it already. Some package managers offer the Postgres client in isolation (ubuntu has postgresql-client) but this is surprisingly uncommon.

sudo apt-get install -y postgresql
sudo pacman -S postgresql
brew install postgresql
# etc.
  • Start an XTDB server

  • Run ./psql/run.sh to start a client

  • Try a query from ./psql/queries.sql

Python

  • Start an XTDB server

  • Install dependencies: ./python/install.sh

  • Edit and run ./python/queries.py

Clojure

The Clojure examples consume XTDB directly, running a client and server in the same process for convenience. This means you do not need to start an external XTDB server. (Though you still can, of course.) The client code still speaks to XTDB over the pgwire protocol using JDBC.

./clojure/README.adoc