Quick Start
Installation
FraiseQL is distributed as a pre-compiled Rust binary — no runtime, no dependencies. Download and run.
Requirements
Section titled “Requirements”- Database: PostgreSQL (recommended), MySQL, SQLite, or SQL Server
- Schema SDK: Python 3.10+, Node.js 18+, Go 1.21+, or others
Install FraiseQL
Section titled “Install FraiseQL”curl -fsSL https://fraiseql.dev/install.sh | shThis installs the latest binary to /usr/local/bin (or ~/.local/bin if that is not writable).
brew install fraiseqlcargo install fraiseqlRequires a Rust toolchain (rustup recommended).
Download from GitHub Releases:
| Platform | File |
|---|---|
| macOS (Apple Silicon) | fraiseql-aarch64-apple-darwin.tar.gz |
| macOS (Intel) | fraiseql-x86_64-apple-darwin.tar.gz |
| Linux x86_64 | fraiseql-x86_64-unknown-linux-gnu.tar.gz |
| Windows | fraiseql-x86_64-pc-windows-msvc.zip |
Install the Schema SDK
Section titled “Install the Schema SDK”The schema SDK lets you define GraphQL types in your preferred language.
SDK Maturity
Section titled “SDK Maturity”| Language | Status | Starters | Docs |
|---|---|---|---|
| Python | ✅ Stable | minimal · blog · saas · auth | Full |
| TypeScript | ✅ Stable | minimal | Full |
| Go | 🧪 Community preview | — | Minimal |
| Java | 🧪 Community preview | — | Minimal |
| PHP | 🧪 Community preview | — | Minimal |
Python and TypeScript are the recommended starting points. Go, Java, and PHP SDKs exist and can declare schema types, but have fewer examples and less documentation coverage.
# uv (recommended)uv add fraiseql
# pippip install fraiseqlRequires Python 3.10+.
npm install fraiseql# orpnpm add fraiseqlRequires Node.js 18+.
go get github.com/fraiseql/fraiseql-goRequires Go 1.21+.
Verify Installation
Section titled “Verify Installation”fraiseql --versionExpected output:
fraiseql 2.0.0Set Up Your Database
Section titled “Set Up Your Database”# Create a databasecreatedb myapp
# Set the connection stringexport DATABASE_URL="postgresql://localhost:5432/myapp"PostgreSQL gives you the best JSON support and is the recommended database for new projects.
# Create a databasemysql -e "CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"
# Set the connection stringexport DATABASE_URL="mysql://root@localhost:3306/myapp"# SQLite creates the file automatically — no setup neededexport DATABASE_URL="sqlite:///./myapp.db"SQLite is ideal for local development and testing.
# Set the connection stringexport DATABASE_URL="sqlserver://localhost:1433;database=myapp;user=sa;password=YourPassword123"Initialize a Project
Section titled “Initialize a Project”-
Create a new project:
Terminal window fraiseql init my-apicd my-api -
Review the generated structure:
my-api/├── fraiseql.toml # Project configuration├── schema/│ └── schema.py # Schema definition (or .ts / .go)└── sql/├── tables/ # Table DDL└── views/ # View definitions -
Set your database URL and verify the connection:
Terminal window export DATABASE_URL="postgresql://localhost:5432/myapp"fraiseql db checkExpected output:
✓ Connected to PostgreSQL 16.1✓ Database "myapp" accessible
IDE Setup
Section titled “IDE Setup”VS Code
Section titled “VS Code”{ "recommendations": [ "ms-python.python", "tamasfe.even-better-toml", "graphql.vscode-graphql" ]}PyCharm / IntelliJ
Section titled “PyCharm / IntelliJ”FraiseQL works out of the box with PyCharm’s Python support. Install the TOML plugin for fraiseql.toml syntax highlighting.
Docker
Section titled “Docker”FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y curl && \ curl -fsSL https://fraiseql.dev/install.sh | sh && \ rm -rf /var/lib/apt/lists/*
COPY . /appWORKDIR /app
RUN fraiseql compileCMD ["fraiseql", "run", "--host", "0.0.0.0"]FROM alpine:3.19
RUN apk add --no-cache curl && \ curl -fsSL https://fraiseql.dev/install.sh | sh
COPY . /appWORKDIR /app
RUN fraiseql compileCMD ["fraiseql", "run", "--host", "0.0.0.0"]Troubleshooting
Section titled “Troubleshooting”“command not found: fraiseql” — Add ~/.local/bin to your PATH:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc“database connection refused” — Verify your database is running and check DATABASE_URL:
fraiseql db checkPermission errors on Linux — Make the binary executable:
chmod +x ~/.local/bin/fraiseql