Core libraries for the Tiders blockchain data pipeline framework.
tiders-core is a Rust workspace that provides the high-performance engine behind Tiders (Python SDK). It handles data ingestion, ABI decoding, type casting, encoding, and schema definitions. Tiders calls into these libraries via PyO3 bindings.
| Crate | Purpose |
|---|---|
tiders-ingest |
Data provider orchestration and streaming |
tiders-evm-decode |
EVM event and function ABI decoding |
tiders-svm-decode |
Solana instruction and log decoding |
tiders-cast |
Arrow column type casting (blockchain-aware) |
tiders-evm-schema |
Arrow schema definitions for EVM data |
tiders-svm-schema |
Arrow schema definitions for SVM data |
tiders-query |
Query execution and filtering |
tiders-core |
Re-export crate aggregating all of the above |
tiders-core-python |
PyO3 Python bindings |
tiders-core (re-exports)
├── tiders-ingest
│ ├── tiders-evm-schema
│ ├── tiders-svm-schema
│ └── tiders-rpc-client (optional, for RPC provider)
├── tiders-evm-decode
├── tiders-svm-decode
├── tiders-cast
└── tiders-query
To develop locally across all repos, clone all three projects side by side:
git clone https://github.com/yulesa/tiders.git
git clone https://github.com/yulesa/tiders-core.git
git clone https://github.com/yulesa/tiders-rpc-client.gitBuild tiders-core:
cd tiders-core
cargo buildIf you're also modifying tiders-rpc-client locally, override the crates.io version:
cargo build --config 'patch.crates-io.tiders-rpc-client.path="../tiders-rpc-client/rust"'Build the Python bindings:
cd tiders-core/python
maturin develop --uv
# With local tiders-rpc-client override
maturin develop --uv --config 'patch.crates-io.tiders-rpc-client.path="../../tiders-rpc-client/rust"'To avoid passing --config on every build, add to tiders-core/Cargo.toml:
[patch.crates-io]
tiders-rpc-client = { path = "../tiders-rpc-client/rust" }To use your local tiders-core in tiders, add to tiders/pyproject.toml:
[tool.uv.sources]
tiders-core = { path = "../tiders-core/python", editable = true }Then sync:
cd tiders
uv syncTiders is a fork of Cherry and cherry-core, a blockchain data pipeline framework built by the SteelCake team. Cherry laid the architectural foundation that Tiders builds upon, and we're grateful for their work and the open-source spirit that made this continuation possible.
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.
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.