WaveQL
The Universal SQL Connector for Modern APIs
Query ServiceNow, Salesforce, Jira, and more using standard SQL.
WaveQL unifies SaaS APIs (ServiceNow, Salesforce, Hubspot), Databases, and Files under a standard SQL interface. It translates your SQL into optimized API calls (pushing down predicates like WHERE and ORDER BY) and handles pagination/auth automatically.
🚀 Quick Start
pip install waveql
import waveql
# Connect to any source
conn = waveql.connect("servicenow://instance.service-now.com", username="admin", password="password")
# Run standard SQL (We handle the API translation)
cursor = conn.cursor()
cursor.execute("""
SELECT number, short_description
FROM incident
WHERE priority = 1
ORDER BY number DESC
LIMIT 5
""")
print(cursor.to_df()) # Returns Pandas DataFrame
📚 Documentation
| Topic | Description |
|---|---|
| Adapters | Supported sources (ServiceNow, Salesforce, etc.) |
| Architecture | System diagram & components |
| Configuration | Auth, Caching, and Paths |
| Transactions | Saga Pattern & Atomic Writes |
| CDC | Real-time Change Data Capture |
| Semantic Layer | Virtual Views & dbt integration |
Contributors: Read AGENTS.md.
✨ Key Features
- Universal SQL: Join
servicenow.incidentwithsalesforce.account. - Smart Pushdown:
WHEREconverts to JQL/SOQL automatically. - Zero-Copy: Built on DuckDB + PyArrow.
- Async Native:
async/awaitthroughout. - Production Ready: Retries, rate-limiting, and pooling.
License
MIT.
Metadata
Release files for waveql 0.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| waveql-0.1.8.tar.gz | 4.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| waveql-0.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 5.1 MB
Release files / waveql-0.1.8.tar.gz
| Download URL | waveql-0.1.8.tar.gz |
|---|---|
| Size | 4.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
72d85feeeeb9fa0d7c207777ebc68d1d0f7399d0ca21aeff2ae12fd4c3e4d898
|
|
BLAKE2b-256 checksum How to use checksums |
b331d7fc4acefd5d9e0fd27f070eefd574ecc512b8ff14d9c02a3c5d4def9b85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Release files / waveql-0.1.8-py3-none-any.whl
| Download URL | waveql-0.1.8-py3-none-any.whl |
|---|---|
| Size | 297.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7ad55786fe685f5918074b8bff00bc7e0e2605550f5effda2f027de40209e89e
|
|
BLAKE2b-256 checksum How to use checksums |
ca870e0478316141986cd7e0c9bb64fcdb1bae7fdb626e083ea49d64623af4be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|