Repository navigation
Releases: benaiad/sqlize
Release list
v0.3.0
What's new
Type safety and correctness
- Domain newtypes, improved error model, and secret redaction
- Replaced custom Scalar with DataFusion's ScalarValue
- 9 type-driven fixes for correctness, safety, and design
Robustness
- Enforced boundary contracts for API response shape and multi-spec resolution
- Replaced
assert!inAcceptHeader::newwithResult - Resolved all clippy warnings across both crates
Docs
- Rewrote README
v0.2.3
What's new
Improved CLI UX
sqlize --versionnow works--helpshows usage examples for single-spec, query mode, and multi-spec- REPL startup banner shows version, available commands, and a contextual sample query adapted to the loaded spec
v0.2.2
What's new
Lazy paginating stream — API pages are now fetched on demand, one per poll. This enables JOINs to pull enough data from both sides without requiring subqueries with explicit LIMIT.
Configurable MAX_ROWS — Each table scan fetches up to max_rows (default 1000) when no SQL LIMIT is specified. Override with:
--max-rows 5000(CLI flag)SQLIZE_MAX_ROWS=5000(env var)
SQL LIMIT is still respected when DataFusion pushes it down.
Single-object endpoints — GET endpoints that return a JSON object (not an array) are now included as one-row tables. e.g. GET /repos/{owner}/{repo} is queryable and works in JOINs:
SELECT r.name, r.stargazers_count, i.number, i.title
FROM repos r
JOIN repos_issues i ON r.owner = i.owner AND r.repo = i.repo
WHERE r.owner = 'openclaw' AND r.repo = 'openclaw'
AND i.owner = 'openclaw' AND i.repo = 'openclaw'
AND i.state = 'open'
LIMIT 5;Fixes
- Path params (owner, repo) now always use the WHERE clause value, not the response JSON
field. Fixes JOINs on path param columns where a response field with the same name would shadow the string value. - Wrapped array detection now requires array items to be objects, preventing false matches on primitive arrays.
- All response columns are now nullable to handle APIs that return null for spec-declared required fields.
v0.2.1
What's new
DataFusion query engine — Replaced the custom SQL planner with Apache DataFusion, unlocking full SQL support:
JOIN— between tables in the same API, or across different APIsGROUP BY,COUNT,SUM,AVG,MIN,MAX- Subqueries, CTEs,
UNION/INTERSECT CASE,CAST, and expression evaluation
Multi-spec federation — Query multiple APIs in one session:
sqlize --spec github:specs/github.json --spec stripe:specs/stripe.jsonSELECT c.name, c.email, k.commit_message
FROM stripe.customers c
JOIN github.commits k ON c.name = k.author_login
WHERE k.owner = 'openclaw' AND k.repo = 'openclaw'
LIMIT 5;Per-spec auth — Each spec resolves its own token via env var convention:
export SQLIZE_BEARER_ENV_VAR_GITHUB=GITHUB_TOKEN
export SQLIZE_BEARER_ENV_VAR_STRIPE=STRIPE_TEST_API_KEYFalls back to SQLIZE_BEARER_TOKEN / SQLIZE_BEARER_ENV_VAR as global default.
Breaking changes
--specnow accepts multiple values. Single-spec usage is unchanged.- The custom SQL planner is removed. All queries now go through DataFusion. Most existing queries work as before, but error messages may differ.
v0.1.0
Install sqlize 0.1.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Benaiad/sqlize/releases/download/v0.1.0/sqlize-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/Benaiad/sqlize/releases/download/v0.1.0/sqlize-installer.ps1 | iex"Download sqlize 0.1.0
| File | Platform | Checksum |
|---|---|---|
| sqlize-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| sqlize-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| sqlize-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| sqlize-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| sqlize-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |