Library for building blockchain pipelines
Project description
tiders
tiders is a python library for building blockchain data pipelines.
It is designed to make building production-ready blockchain data pipelines easy.
Getting Started
See getting started section of the docs.
Features
- Pure
pythonlibrary. Don't need yaml, SQL, toml etc. - High-level
datasetsAPI and flexible pipeline API. High-performance,low-costanduniformdata access. Ability to use advanced providers without platform lock-in.- Included functionality to
decode,validate,transformblockchain data. All implemented inrustfor performance. - Write transformations using
polars,pyarrow,datafusion,pandas,duckdbor any otherpyarrowcompatible library. Schema inferenceautomatically creates output tables.- Keep datasets fresh with
continuous ingestion. Parallelized, next batch of data is being fetched while your pre-processing function is running, while the database writes are being executed in parallel. Don't need to hand optimize anything.- Included library of transformations.
- Included functionality to implement
crash-resistance.
Data providers
| Provider | Ethereum (EVM) | Solana (SVM) |
|---|---|---|
| HyperSync | ✅ | ❌ |
| SQD | ✅ | ✅ |
Supported output formats
- ClickHouse
- Iceberg
- Deltalake
- DuckDB
- Arrow Datasets
- Parquet
Usage examples
Logging
Python code uses the standard logging module of python, so it can be configured according to python docs.
Set RUST_LOG environment variable according to env_logger docs in order to see logs from rust modules.
To run an example with trace level logging for rust modules:
RUST_LOG=trace uv run examples/path/to/my/example
Development
This repo uses uv for development.
- Format the code with
uv run ruff format - Lint the code with
uv run ruff check - Run type checks with
uv run pyright - Run the tests with
uv run pytest
Core libraries we use for ingesting/decoding/validating/transforming blockchain data are implemented in tiders-core repo.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tiders-0.1.0.tar.gz.
File metadata
- Download URL: tiders-0.1.0.tar.gz
- Upload date:
- Size: 21.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef31d1e4fc4352d16db1093f252183bf579dc130669c5399353d92e074a3dde3
|
|
| MD5 |
e1394610db86fe85668d60c0dd0d800d
|
|
| BLAKE2b-256 |
b99f9cce553844abbeb1a008084c42ffb25ffc581d717c9c743d07858e64ce35
|
File details
Details for the file tiders-0.1.0-py3-none-any.whl.
File metadata
- Download URL: tiders-0.1.0-py3-none-any.whl
- Upload date:
- Size: 24.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e135415919438316b4d66d0d0f4cb7bf43d6befb23d673ffb9cf97d8a091457f
|
|
| MD5 |
ae4f83c27be3d6f113d2333a283a22d7
|
|
| BLAKE2b-256 |
5d6ecd604d30e9a79448f26faeb7b4a076758b800701cf09b847d09858372b39
|