Нативные драйверы
Четыре языка, ноль внешних зависимостей, единая логика экранирования параметров — поведение идентично между языками.
Python (DB-API 2.0)
Drop-in замена для кода, использующего sqlite3/psycopg2/pymysql:
import filedb
conn = filedb.connect("http://alice:secret@localhost:8080/myapp")
cur = conn.cursor()
cur.execute("SELECT * FROM users WHERE id = ?", (42,))
print(cur.fetchone())
Go (database/sql)
Drop-in для GORM, sqlx, sqlc и любого кода поверх database/sql:
import _ "github.com/filedb/filedb-go"
db, _ := sql.Open("filedb", "http://alice:secret@localhost:8080/myapp")
db.QueryRow("SELECT name FROM users WHERE id = ?", 42).Scan(&name)
Node.js (async/await)
import { connect } from "filedb";
const conn = await connect("http://alice:secret@localhost:8080/myapp");
const rows = await conn.query("SELECT * FROM users WHERE id = ?", [42]);
PHP (PDO-подобный API)
Не наследует PDO, но повторяет его форму:
use FileDBConnection;
$conn = new Connection('http://localhost:8080/myapp', 'alice', 'secret');
$stmt = $conn->prepare('SELECT * FROM users WHERE id = ?');
$stmt->execute([42]);
$row = $stmt->fetch(Connection::FETCH_ASSOC);
Типичные грабли
- Переиспользуйте токен логина, а не логиньтесь на каждый запрос.
- Для больших выборок используйте потоковое чтение результата, а не загрузку всего в память.
- Работа с несколькими базами в одном соединении — через параметр
dbна каждом запросе, а не пересоздание соединения.
Похожие страницы
← Назад
HTTP API