Danilo Fragoso fafdc1ccd9 clients, imports, fixes 7 bulan lalu
..
go fafdc1ccd9 clients, imports, fixes 7 bulan lalu
js fafdc1ccd9 clients, imports, fixes 7 bulan lalu
python fafdc1ccd9 clients, imports, fixes 7 bulan lalu
ruby fafdc1ccd9 clients, imports, fixes 7 bulan lalu
README.md fafdc1ccd9 clients, imports, fixes 7 bulan lalu

README.md

PizzaSQL Client Libraries

Official client libraries for PizzaSQL in multiple programming languages.

Available Clients

Language Directory Package Manager Status
JavaScript/TypeScript js/ npm ✅ Ready
Python python/ pip ✅ Ready
Go go/ go get ✅ Ready
Ruby ruby/ gem ✅ Ready

Quick Start

All client libraries follow a similar API design pattern for consistency across languages.

JavaScript/TypeScript (Node.js/Bun)

import { connect } from 'pizzasql';

const db = connect('http://localhost:8080/mydb', 'api-key');
const users = await db.sql('SELECT * FROM users');
const userIds = users.map(u => u.id);

Full documentation

Python

from pizzasql import connect

db = connect('http://localhost:8080/mydb', api_key='api-key')
users = db.sql('SELECT * FROM users')
user_ids = [u['id'] for u in users]

Full documentation

Go

import "github.com/pizzasql/pizzasql-go"

db, err := pizzasql.Connect("http://localhost:8080/mydb", "api-key")
if err != nil {
    log.Fatal(err)
}

rows, err := db.SQL("SELECT * FROM users")
if err != nil {
    log.Fatal(err)
}

for _, row := range rows {
    fmt.Println(row["id"])
}

Full documentation

Ruby

require 'pizzasql'

db = PizzaSQL.connect('http://localhost:8080/mydb', 'api-key')
users = db.sql('SELECT * FROM users')
user_ids = users.map { |u| u['id'] }

Full documentation

Common Features

All client libraries support:

  • SQL Queries - Execute any SQL query and get JSON results
  • Export - Export database or specific tables to SQL or CSV
  • Import - Import data from SQL or CSV files
  • Authentication - Optional API key authentication
  • Error Handling - Proper error handling with meaningful messages

Installation

JavaScript/TypeScript

npm install pizzasql
# or
bun add pizzasql

Python

pip install pizzasql

Go

go get github.com/pizzasql/pizzasql-go

Ruby

gem install pizzasql

API Consistency

All clients implement the same core methods:

Method JavaScript Python Go Ruby
Connect connect(uri, apiKey) connect(uri, api_key) Connect(uri, apiKey) connect(uri, api_key)
Query sql(query) sql(query) SQL(query) sql(query)
Export export(table, format) export(table, format) Export(table, format) export(table:, format:)
Import import(data, format, createTable) import_data(data, format, create_table) Import(data, format, createTable) import(data, format:, create_table:)

URI Format

All clients accept URIs in the following formats:

http://localhost:8080/mydb
https://pizzabase.cloud/my_org/sql/my_db:32131

The database name is extracted from the last segment of the URI path.

Authentication

All clients support optional API key authentication via Bearer token:

// With API key
const db = connect('http://localhost:8080/mydb', 'your-api-key-here');

// Without API key
const db = connect('http://localhost:8080/mydb');

Response Format

All clients return query results as an array of objects/dictionaries/maps:

[
  {"id": 1, "name": "Alice", "email": "alice@example.com"},
  {"id": 2, "name": "Bob", "email": "bob@example.com"}
]

Export/Import Formats

Supported formats:

  • sql - SQL statements (default)
  • csv - Comma-separated values

Export Examples

// Export entire database as SQL
const sqlData = await db.export('', 'sql');

// Export specific table as CSV
const csvData = await db.export('users', 'csv');

Import Examples

// Import SQL file
await db.import(sqlData, 'sql', false);

// Import CSV with auto table creation
await db.import(csvData, 'csv', true);

Contributing

Each client library is maintained independently. See individual client directories for development setup and contribution guidelines.

License

MIT