sql5 4.1.0

SQLite compatible database with CJK FTS5 full-text search and vector similarity
Documentation
# sql5 v3.1 - Python CLI Interface

## Overview

v3.1 新增 pure Python CLI 介面,提供與 Rust REPL 等效的功能:

```
$ python -m sql5
sql5> SELECT 1
sql5> .tables
sql5> .schema users
sql5> .quit
```

## Features

### Pure Python REPL

- 無需編譯 Rust 二進位檔即可使用
- 透過 Python client 連線到已啟動的 server(或自動啟動)
- 支援所有 SQL 語法和 FTS5 全文檢索

### Dot Commands

| Command | Description |
|---------|-------------|
| `.help` | Show available commands |
| `.tables` | List all tables |
| `.schema [TABLE]` | Show CREATE statement |
| `.indexes` | List all indexes |
| `.quit` / `.exit` | Exit REPL |
| `.mode [csv/column]` | Output format |

### Interactive Features

- 自動補全(tab completion)
- SQL 語法高亮(可選)
- 多行 SQL 輸入(以 `;` 結尾)
- 歷史記錄(上下鍵)

## Changes from v3.0

- **New**: Python CLI (`python -m sql5`)
- **New**: `--cli` flag for Rust binary to enable JSON stdio mode
- **New**: `.mode`, `.indexes` commands
- **Version**: 3.1.0

## Installation

```bash
pip install sql5
```

Or install from source:

```bash
cd sql5_pypi
pip install -e .
```

## Usage

### Basic Usage

```bash
# In-memory database
python -m sql5

# Open database file
python -m sql5 mydb.db

# Execute single query and exit
python -m sql5 -c "SELECT * FROM users"

# Execute script file
python -m sql5 < script.sql
```

### Options

| Option | Description |
|--------|-------------|
| `-c, --command` | Execute SQL and exit |
| `-s, --script` | Execute SQL script file |
| `--transport` | Transport mode (subprocess/websocket) |
| `--host` | WebSocket host (default: 127.0.0.1) |
| `--port` | WebSocket port (default: 8080) |

## Architecture

```
python -m sql5
┌──────────────────┐
│   sql5 CLI       │  ← Pure Python REPL
│   __main__.py    │
└──────────────────┘
       │ JSON stdio
┌──────────────────┐
│  Rust server    │
│  --server       │
└──────────────────┘
```

## Protocol

Python CLI 使用 JSON stdio 與 Rust server 通訊:

```json
// Request
{"method": "execute", "sql": "SELECT 1"}

{"method": "tables"}

{"method": "schema", "table": "users"}

// Response
{"ok": true, "columns": ["1"], "rows": [[1]], "affected": 0}

{"ok": true, "tables": ["users", "posts"]}

{"ok": true, "sql": "CREATE TABLE users ..."}
```

## See Also

- [v3.0.md]./v3.0.md - WebSocket server support
- [v2.0.md]./v2.0.md - Client-server architecture