StreamWright — the streamwright CLI and runtime
StreamWright turns a few YAML files into a working data pipeline. You describe what to pull — from an API, a file store or a database — and StreamWright handles the how: signing in, paging, retries, shaping the data with DuckDB SQL, and writing it out. No per-connector code, and one command runs any source.
The streamwright package is the heart of it: the streamwright command plus the runtime for
kind: source sources.
streamwright runexecutes a source ·streamwright validatechecks one ·streamwright connectorsbrowses and installs connectors.- A source is a folder —
source.yaml(spec,auth,http) and one file per stream instreams/— or a single YAML file. - Each stream fetches (HTTP requests / SDK connectors), shapes (sandboxed DuckDB SQL), and writes (files, DuckDB/DuckLake or dlt).
Install
pip install streamwright
streamwright --help
This installs the streamwright CLI, the runtime and the connector hub — but no
connectors yet. Add the ones you need on demand:
streamwright connectors list # browse the hub
streamwright connectors install files # a reader (files, s3, gcs, postgres)
streamwright connectors install google_ads # an API connector (pulls in its SDK)
streamwright connectors install google_ads meta_ads microsoft_ads # several at once (one pip install)
The catalog comes from the live StreamWright hub. When it is
unreachable, the CLI warns and uses the last copy it fetched, else the one bundled with this release;
--hub-url bundled uses the bundled copy only, with no network (reproducible builds).
Quickstart
pip install streamwright
streamwright connectors install files
# the runnable examples live in the repo — clone it to try one end-to-end
git clone https://github.com/karthick-jaganathan/streamwright.git
streamwright validate streamwright/examples
streamwright run streamwright/examples/sources/readers/files_demo \
--set data_root=streamwright/examples/sources/readers/files_demo/data \
--allow-connector files --output jsonl:out
📖 Full documentation: https://streamwright.web.app/docs/ — command line, streams, outputs, logging, connectors & readers and the Python API.
- Architecture guide: https://streamwright.web.app/docs/architecture/
- Connectors & readers: https://streamwright.web.app/docs/connectors/
Metadata
Release files for streamwright 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| streamwright-0.1.5.tar.gz | 235.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| streamwright-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 387.9 kB
Release files / streamwright-0.1.5.tar.gz
| Download URL | streamwright-0.1.5.tar.gz |
|---|---|
| Size | 235.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
482712f0d1653c054183c9e6f208550e1eb29e1427de5665d5f4e69c361f0409
|
|
BLAKE2b-256 checksum How to use checksums |
6dd1d9111b79dbaf2b445079480e5f0f7982963b0be87bf59fbb9e2c2777d8c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.13
|
Release files / streamwright-0.1.5-py3-none-any.whl
| Download URL | streamwright-0.1.5-py3-none-any.whl |
|---|---|
| Size | 152.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dc224257d3771dd4c2e61748806636d7bea3e33368503765b00e05353318bbc9
|
|
BLAKE2b-256 checksum How to use checksums |
a3e0da5ef4749deadf8346e9facd3e61758bea90ff7353c5731239800af0bcdc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.13
|